如何把一个 结构(记录)的内容存成文件(50分)

  • 主题发起人 主题发起人 白河愁
  • 开始时间 开始时间

白河愁

Unregistered / Unconfirmed
GUEST, unregistred user!
是内容,不是地址。
比如
type aaa=record
a,b:pchar;
c:dword;
end;

var bbb:aaa;
ff:tfilestream;
begin
ff.write(bbb,sizeof(bbb);
end;

这样只能吧 pchar 的内存地址写进去。但 dword的内容就写进去了
 
按字符串存吧。
var bbb:aaa;
ssTStringList;
begin
ss := TStringList.Create;
try
ss.Values['a'] := aaa.a;
ss.Values['b'] := aaa.b;
ss.Values['c'] := IntToStr(aaa.c);
ss.SaveToFile('aaaaaa');
finally
ss.Free;
end;
end;
 
我只想存结构
 
原因:
A,B:PChar都是指针,即使你把PChar替换成为string也是一样的。
有一个很简单的解决办法,就是A:array[0..256] of Char;或者A:string[256]
就可以了。
 

FileWrite(AFileHandle,bbb,sizeof(aaa));
 
type
Trecd =record
code:integer;
Name:pchar;
end;
var
f:file of Trecd;
v:Trecd;
begin
v.code :=1234;
v.Name :='asdfasd';
assignFile(f,'C:/tmp.tmp');
reset(f);
v.Name :='';
closefile(f);
end;
 
我觉得NeutronDelphi的方法可行
 
算了,散分
 
后退
顶部