我记得键盘输入有种方法,不过不记得了,如写#106#13在一个文本文件中,怎样输入?

解决方案 »

  1.   

    关于二进制文件读写问题
    ( 阅读次数:5)  
    type
      Student = record
        FirstName, LastName: string[20];
        PhoneNumber: string[15];
        PostCode: Integer;
        Birthday: TDate;
      end;
      StudentList = file of Student;写入:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      sss: TFileStream;
      s: Student;
    begin
    //...此处判断文件是否存在,如果不存在则建立它...
      sss := TFileStream.Create('c:\a.dat', fmOpenWrite);
      try
      sss.Seek(0, soFromEnd);//新增
    {  sss.Seek(0, soFromBeginning);//覆盖则用此方法}
      s.FirstName := 'FirstName';
      s.LastName := 'LastName';
      s.PhoneNumber := '123456';
      s.PostCode := 123456;
      s.Birthday := Date;
      sss.Write(s, sizeof(s));
      s.FirstName := '111FirstName';
      s.LastName := '111LastName';
      s.PhoneNumber := '111123456';
      s.PostCode := 111123456;
      s.Birthday := Date;
      sss.Write(s, sizeof(s));
      finally
        sss.Free;
      end;
    end;读取
    procedure TForm1.Button2Click(Sender: TObject);
    var
      sss: TFileStream;
      s: Student;
      numread: Integer;
    begin
      sss := TFileStream.Create('c:\a.dat', fmOpenRead);
      try
      while True do
      begin
        numread := sss.Read(s, sizeof(s));
        if numread  sizeof(s) then break;
         showmessage(s.firstname + #13 + s.LastName + #13 +
                     s.PhoneNumber +#13+
                     inttostr(s.PostCode)+#13+
                     datetostr(s.birthday));  end;
      finally
        sss.Free;
      end;
    end;
      

  2.   

    用快捷键,在keypress中进行判断