поиск в текстовом файле результат записи в записку, lazarus - PullRequest
1 голос
/ 22 октября 2010

этот сегмент в моей программе сначала рекламирует клиента в текстовом файле (объявленном в открытых переменных) и сохраняет его в текстовом файле.onbutton1click - это прокурор, который ищет строку, которая находится в окне редактирования, и возвращает соответствующие данные клиента в заметку.клиент add работает нормально и добавляет текстовый файл, однако при поиске он не возвращает ничего в заметку, только заголовок заметки memo1.В любом случае, я могу решить это?извините, я новичок в этом.

  procedure TForm2.btnsaveClick(Sender: TObject);

  begin
     cusfname:= edit1.text ;
     cuslname:= edit2.text;
     adress:= edit3.text;
     phone:= edit4.text;
     password:= edit5.Text;
     AssignFile(F, 'Data.txt');
     append(F);
     WriteLn(F, cusfname);
     WriteLn(F, cuslname);
     WriteLn(F, adress);
     WriteLn(F, phone);
     WriteLn(F, password);
     CloseFile(F);
    end;

   procedure TForm2.Button1Click(Sender: TObject);

   var

     SearchFile : Textfile;
     found: boolean;
     search: string;

    begin
    search := edit1.text;
    Assignfile(SearchFile, 'data.txt');
    Reset(SearchFile);
    found:= false;
    repeat
      found:= search = phone
    until eof(searchfile) or found;
    if found then
    memo1.append(phone);
    memo1.append(cusfname);
    memo1.append(adress);
    if not found then 
      showmessage('member not found');
   end;                           

Ответы [ 2 ]

0 голосов
/ 26 октября 2010

В вашем коде вы не read() из файла.В другом подобном вопросе (вероятно, ваш): файл runerror (102) не назначен? есть read().Но я думаю, что вы должны использовать readln(), или даже лучше использовать TStringList класс из Classes модуля с его LoadFromFile() методом и Lines свойством.

0 голосов
/ 24 октября 2010

интересно, где находятся прочитанные операторы? В функции записи у вас есть операторы Write (), но в коде чтения нет операторов read ()?

...