Hola de nuevo Manuel, en tu codigo quedaría mas o menos así.
Código Delphi
[-]
var
sl : TStringList;
Cadena, respuesta, pregunta : String;
i : Integer;
begin
if Key <> #13 then Exit;
Table1.Open;
Table2.Open;
Table3.Open;
Table4.Open;
sl := TStringList.Create;
sl.Delimiter := #32;
sl.DelimitedText := Edit1.Text;
pregunta := sl[0];
try
Memo1.Lines.Add(Edit1.Text);
if (Table1.Locate('palabra', pregunta, [loCaseInsensitive])) and
(Table2.Locate('NUMERO', Table1.fieldByName('NUMERO').AsString, [loCaseInsensitive])) then
begin
sl.Delete(0);
respuesta := Table2.fieldByName('RESPUESTA').AsString;
Cadena := '';
for i:=0 to sl.Count-1 do
Cadena := Cadena+sl[i];
respuesta := StringReplace(respuesta,'*',Cadena,[rfIgnorecase,rfReplaceAll]);
showmessage(respuesta);
end
else
If (Table3.Locate('palabra',Edit1.Text,[loCaseInsensitive])) and
Memo1.Lines.Add('Hasta la próxima')
else
Memo1.Lines.Add('No entiendo la frase.Podría explicármelo de otra forma?');
finally
Table1.Close;
Table2.Close;
Table3.Close;
Table4.Close;
end;
end;
Conste que solo es si la primera palabra es la que se esta buscando en la tabla de preguntas, debes analizar para todos los casos que dije, pero como ejemplo y para que veas como funciona te servira.
Saluditos