搜索文本文件将结果写入备忘录,拉撒路

时间:2010-10-22 02:42:49

标签: lazarus text-files

我的程序中的这一部分首先将客户发布到文本文件(在公共变量中声明)并将其保存到texfile中。 onbutton1click是搜索编辑框中字符串并将相关客户详细信息返回到备忘录的procudere。添加客户工作正常并添加到文本文件,但是当我搜索它时,不会在备忘录上返回任何内容,只有备忘录标题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 :(得分:0)

想知道读取陈述在哪里?在write函数中你有Write()语句,但在读代码中没有read()语句吗?

答案 1 :(得分:0)

在您的代码中,您没有read()来自档案。在其他类似问题中(可能是您自己的问题):runerror(102) file not assigned?read()。但我认为您应该使用readln(),或者更好地使用Classes单元中的TStringList类及其LoadFromFile()方法和Lines属性。

相关问题