Hola amiga Caro.
Podrías revisarme este código. Me dá una respuesta que no concuerda y además me repite en el Memo el Edit1 al final de la respuesta.
Código Delphi
[-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
sl : TStringList;
Cadena, respuesta, pregunta : String;
i : Integer;
Indice : Integer;
begin
If Key <> #13 then Exit;
Table1.Open;
Table2.Open;
sl := TStringList.Create;
sl.Delimiter := #32;
sl.DelimitedText := Edit1.Text;
sl.Insert(0,Edit1.Text);
try
Memo1.Lines.Add(Edit1.Text);
Indice := -1;
Repeat
Inc(Indice);
Until Not (Table1.Locate('PALABRA', sl[Indice],[loCaseInsensitive]));
if Indice>=0 then
begin
if (Table2.Locate('NUMERO', Table1.fieldByName('NUMERO').AsString, [loCaseInsensitive])) then
begin
sl.Delete(Indice);
respuesta := Table2.fieldByName('RESPUESTA').AsString;
Cadena := '';
for i:=0 to sl.Count-1 do
Cadena := Cadena+sl[i];
respuesta :=StringReplace(respuesta,'*',Cadena,[rfIgnorecase,rfReplaceAll]);
Memo1.Lines.Add(respuesta);
end;
Table1.Close;
Table2.Close;
Edit1.Text := '';
end;
finally
end;
end;
end.
Gracias.