在 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的方式只能声明一种记录格式的文件,但现在这个文件是多个记录格式?
想了很久没有办法,特来求助!希望大侠不吝指导!
这个问题对我很重要,希望大侠们能最好讲解的详细一点,而且最好有示例代码!!分不够再开贴给!!
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的方式只能声明一种记录格式的文件,但现在这个文件是多个记录格式?
想了很久没有办法,特来求助!希望大侠不吝指导!
这个问题对我很重要,希望大侠们能最好讲解的详细一点,而且最好有示例代码!!分不够再开贴给!!
用Ini,分解出记录中的域,写进去啊,。
另外, linzhengqun(风) ,您能不能说的仔细一点,到底要怎么实现?
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可不受格式限制)
希望得到合理的答案!!
===============
但是有些软件产生的文件感觉明明多种记录格式的,不知道大家有没有用过网文快捕,它最终的信息都保存在一个.book文件里面,这个文件里肯定包含不知一种记录格式,至少应该有网页的分类信息还有网页信息本身。