在 delphi开发指南上的例子里一般都是一个文件只有一种记录格式,比如:
type
  testrecord=packed record
     columnA :string[20];
     columnB :Integer;
    ....
  end;然后在文件中进行写入和读取,
var
  F:File of testrecord;
begin
  AssignFile(F,'test.dat');
  Reset(F);
  ....
end;现在的问题是,如果要在一个文件中存储多中记录格式的数据该怎么办呢 ?
比如我定义了两种(或两种以上 )记录格式
type
  recordA=packed record
    columnA:string[20];
    columnB:Integer;
  end;  recordB=packed record
    columnB:string[50];
    columnA:Integer;
  end;  ...
然后,我要写入这样的记录到同一个文件中该怎么做呢?怎么去声明文件类型?因为用 F:File of recordA的方式只能声明一种记录格式的文件,但现在这个文件是多个记录格式?
想了很久没有办法,特来求助!希望大侠不吝指导!
这个问题对我很重要,希望大侠们能最好讲解的详细一点,而且最好有示例代码!!分不够再开贴给!!

解决方案 »

  1.   

    那你不要用记录文件吗,
    用Ini,分解出记录中的域,写进去啊,。
      

  2.   

    但是有些软件产生的文件感觉明明多种记录格式的,不知道大家有没有用过网文快捕,它最终的信息都保存在一个.book文件里面,这个文件里肯定包含不知一种记录格式,至少应该有网页的分类信息还有网页信息本身。
    另外, linzhengqun(风) ,您能不能说的仔细一点,到底要怎么实现?
      

  3.   

    用TFileStream写入文件,什么格式都没问题的。
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      recA: recordA;
      recB: recordB;
      FileStream: TFileStream;
      FileName: String;
    begin
      FileName := ExtractFilePath(Application.ExeName) + 'test.dat';
      FileStream := TFileStream.Create(FileName, fmCreate);
      try
        {...}
        FileStream.WriteBuffer(recA, Sizeof(recordA));
        FileStream.WriteBuffer(recB, Sizeof(recordB));
      finally
        FileStream.Free;
      end;
    end;(注:用TFileStream可不受格式限制)
      

  5.   

    不会吧,这么快就沉下去啦!!
    希望得到合理的答案!!
    ===============
    但是有些软件产生的文件感觉明明多种记录格式的,不知道大家有没有用过网文快捕,它最终的信息都保存在一个.book文件里面,这个文件里肯定包含不知一种记录格式,至少应该有网页的分类信息还有网页信息本身。
      

  6.   

    ft,怎么就没有人知道吗》?????对delphi版的人太失望啦。
      

  7.   

    用“Delphi技巧收集器”吧,现成的,还算挺好用的,完全可以实现你需要的功能