BkInfor是记录类型
用这段代码写:
BkInfor.SName:='2222';
        FileSeek(iTargetFile, 0, soFromEnd);
        FileWrite(iTargetFile, BkInfor, SizeOf(BkInfor));
用这段代码读:
 FileSeek(iFile, SizeOf(BkInfor), soFromEnd);
  FileRead(iFile, BkInfor, SizeOf(BkInfor));
有问题吗?为什么读完后BkInfor.SName为空?
谢谢!

解决方案 »

  1.   

    用这段代码读:
    FileSeek(iFile, -SizeOf(BkInfor), soFromEnd); 这里要负数
    FileRead(iFile, BkInfor, SizeOf(BkInfor));
      

  2.   

    按照你的代码改完后执行到ShowMessage(BkInfor.SName)时会报告...地址...违例
      

  3.   

    晕, SName 是 string 类型? 这个是一个引用类型变量, 读进来的东东是引用地址, 不要让我们猜好不好SBKInfor 结构定义贴上来
      

  4.   

    SName 改 array [0..xx] of char定长数组, 或 string[xx] 定长字串array of char 也是不对
      

  5.   

    定义如下
    Type
      InFor=Record
        SFlag: String;    SWriter: String;    SMaker: String;    SInfor: String;    SRe: String;    SLabel: String;    BReadOnly: Boolean;
      End;
    var
    BkInfor:Infor;