zinan adlı üyeden alıntı: mesajı görüntüle
Pekala, o zaman şunu deneyebilir misin;

(memo1 in metnini prosedür içinden değiştiriyorum onu iptal edip kendin yazabilirsin)

procedure TForm1.Button1Click(Sender: TObject);
  function IndexOfArray(const Value: String; Items: array of String): Integer;
  var
    i: Integer;
  begin
    Result := -1;
    for i := Low(Items) to High(Items) do
    begin
      if AnsiSameText(Value, Items[i]) then
      begin
        Result := i;
        Break;
      end;
    end;
  end;
const
  arrKelimeler : array[0..5] of string = ('isim','hekim','resim','ad','doktor','fotograf');
  arrEsanlamlilar : array[0..5] of string = ('ad','doktor','fotograf','isim','hekim','resim');
var
  liste : TStringList;
  i,j: integer;
begin
  memo1.Lines.Text := 'satır 1 isim resim ad ' +#13+
          'satır 2 fotograf resim aynısı' +#13+
          'satır 3 deneme ad sinan';
  memo2.Lines.Clear;
  try
    liste := Tstringlist.Create;
    liste.Delimiter := ' ';
    for i := 0 to memo1.Lines.Count - 1 do
    begin
      liste.DelimitedText := memo1.Lines[i];
      for j := 0 to liste.Count- 1 do
      begin
        if AnsiMatchStr(liste[j],arrKelimeler) then
          liste[j] := arrEsanlamlilar[IndexOfArray(liste[j],arrKelimeler)];
      end;
      Memo2.Lines.Add(liste.DelimitedText);
    end;
  finally
    liste.Free;
  end;
end;
hocam sizin de zamanınızı alıyorum ama bu satırda hata çıktı

if AnsiMatchStr(liste[j],arrKelimeler) then