Показать сообщение отдельно
  #3  
Старый 08.04.2011, 15:33
Аватар для Rick
Rick Rick вне форума
Прохожий
 
Регистрация: 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;
Ответить с цитированием