Показать сообщение отдельно
  #13  
Старый 24.03.2008, 17:08
Rosenkrantz Rosenkrantz вне форума
Активный
 
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
По умолчанию

Примерно так. Писал прямо здесь, могут быть синтаксические ошибки. Функцию 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;
Ответить с цитированием