Sachow:
那就向你请教了。
定义:
TAGroup = packed record
ID: Integer;
Name: WideString;
Description: WideString;
end;
写测试:
var strFileName: string;
var iFileHandle: Integer;
Group: TAGroup;
begin
Group.ID := 100;
Group.Name := 'asdfasdf';
Group.Description := 'Description';
strFileName := 'C:/123.tmp';
if FileExists(strFileName) then
iFileHandle := FileOpen(strFileName,fmOpenReadWrite)
else
iFileHandle := FileCreate(strFileName);
FileWrite(iFileHandle,Group,Sizeof(Group));
FileClose(iFileHandle);
读测试:
var strFileName: string;
var iFileHandle: Integer;
Group: TAGroup;
begin
strFileName := 'C:/123.tmp';
if FileExists(strFileName) then
iFileHandle := FileOpen(strFileName,fmOpenReadWrite)
else
iFileHandle := FileCreate(strFileName);
FileRead(iFileHandle,Group,Sizeof(Group));
FileClose(iFileHandle);
showmessage(Group.Description);
这是有问题的,而且一个很奇怪的问题,先写然后马上做读测试是没有问题的,程序一启动马上做读动作一定又问题的
我估计的内存那里有问题,这个问题你不用管。
上面代码错误的关键是在结构中的
TAGroup = packed record
ID: Integer;
Name: WideString;
Description: WideString;
end;
Name,Des不能为widestring, 如果改为string是没有问题的?
现在我要求以最简单的方式实现读写含有widestring数据的结构。
谢谢