08.04.2011, 15:33
|
|
Прохожий
|
|
Регистрация: 05.03.2011
Сообщения: 18
Репутация: 10
|
|
Пробовал через преобразование их в массивы, и потом поэлементно сравнивать их, но результат всегда равне 1-му, хотя строки могут быть абсолютно одинаковыми
Код:
var
Total :string;//строка2
ss:string;//строка1
a:array of shortstring;//наш массив
a2:array of shortstring;//наш массив
//........................................................................
procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
total:='';
ss:='aaaabbcddb';
edit2.Text :=ss;
for i:=low(ansArr) to qCount-1 do begin
total:= total + ansArr[i];//+ ';';
end;
edit1.Text :=total;
Repeat //мы постепенно заполняем массив на каждом шаге цикла по 1 элементу
setlength(a,length(a)+1);//увеличиваем размер массива на 1
if pos(' ',ss)>0 then //если есть пробел то надо взять слово до пробела
begin
a[length(a)-1]:=copy(ss,1, pos(' ',ss));//присвоение последнему элементу массива первого слова
ss:=copy(ss,pos(' ',ss)+1, length(ss));//удаляем из строки первое слово
end
else//в строке осталось только одно слово
begin
a[length(a)-1]:=ss;// присвоим последнее слово
break;//выход из цикла
end;
Until False;
Repeat //мы постепенно заполняем массив на каждом шаге цикла по 1 элементу
setlength(a2,length(a2)+1);//увеличиваем размер массива на 1
if pos(' ',total)>0 then //если есть пробел то надо взять слово до пробела
begin
a2[length(a2)-1]:=copy(total,1, pos(' ',total));//присвоение последнему элементу массива первого слова
total:=copy(total,pos(' ',total)+1, length(total));//удаляем из строки первое слово
end
else//в строке осталось только одно слово
begin
a2[length(a2)-1]:=total;// присвоим последнее слово
break;//выход из цикла
end;
Until False;
end;
procedure TForm1.Button1Click(Sender: TObject);
var z,i,j:integer;
r:string;
begin
z:=0;
for i:=low(a) to high(a) do begin
if a2[i]=a[i] then
z:=z+1;
end;
edit3.Text :=inttostr(z);
end;
|