Примерно так. Писал прямо здесь, могут быть синтаксические ошибки. Функцию DivStr я писал несколькими постами выше.
В GetAnswer передаете вопрос, возвращается ответ, если он есть в файле, если нет - возвращается пустая строка.
Код:
procedure GetAnswer(SQuestion: String): String;
var
Dlg: TOpenDialog;
FileStrings: TStringList;
SFileName: String;
function FindAnswer: String;
var
i: Integer;
S1, S2: String;
begin
Result := '';
for i := 0 to FileStrings.Count - 1 do
if DivStr(FileStrings[i], S1, S2) then
if AnsiCompareText(SQuestion, S1) = 0 then begin
Result := S2;
Exit;
end;
end;
begin
Result := '';
Dlg := TOpenDialog.Create(Application);
try
if Dlg.Execute
then SFileName := Dlg.FileName
else SFileName := '';
finally
Dlg.Free;
end;
if Length(SFileName) = 0 then Exit;
FileStrings := TStringList.Create;
try
FileStrings.LoadFromFile(SFileName);
Result := FindAnswer;
finally
FileStrings.Free;
end;
end;