比如我定义了这样的记录,name,memo字段字符不定长.
type
RuleType=record
Name:string;
Normal:byte;
Flag:byte;
Memo:string;
end;
myIndex=record
Flag:string;
Version:integer;
Name:string;
Maker:string;
EMail:string;
Rules:integer;
Rule:array of RuleType;
end;
var
Mydata:myIndex请问我怎样对其进行二进制读写操作呢?
type
RuleType=record
Name:string;
Normal:byte;
Flag:byte;
Memo:string;
end;
myIndex=record
Flag:string;
Version:integer;
Name:string;
Maker:string;
EMail:string;
Rules:integer;
Rule:array of RuleType;
end;
var
Mydata:myIndex请问我怎样对其进行二进制读写操作呢?
解决方案 »
- 大家都用什么工具管理软件BUG啊?
- too many actual parameters?
- 熟悉SHFileOperation用法的朋友请进
- 高手快来看看关于集合的奇怪问题,来者有分!
- 小妹我有一个关于数据长度的问题,急!!!!!
- 如何得到上一个月的日期字符串(格式为yyyymm),在线等待!
- TDBGridEh SortMarker 怎么用
- 为什么我用抓屏软件截取的avi在delphi中用animate播放不了?有什么解决办法?
- 怎样改变stringgrid的Cells[1,0]显示的字付窜对齐方式
- delphi5的升级包是不是骗人的
- 哪位帮忙把这个用C语言写的DLL调用接口规范改用Delphi写一下?
- 高手请进,有关dll问题 !急,在线等!
类型文件
type
Trec = packed record
...
end;
var
arec ;TRec;
recfile : file of trec;然后和文本就差不多了无类型文件:
var
afile :file;
用blockread或blockwrite读写
好好看看帮助
var fileStream TFileStream;
i:integer;
fileName:string;begin
try
i:=1659872911;//此处小心溢出
fileName:='文件名';
fileStream:=TFileStream.create(fileName,fmCreate);
fileStream.write(i,sizeof(i));
finally
fileStream.free;
end;
end;读出来var fileStream TFileStream;
i:integer;
fileName:string;begin
try
fileName:='文件名';
fileStream:=TFileStream.create(fileName,fmopenread);
fileStream.read(i,sizeof(i));//读到i里面去了
finally
fileStream.free;
end;
end;--------------------------------------------------------
如果是字符串,添加一点代码就行了
写进去
var fileStream TFileStream;
i:integer;
fileName,Strdata:string;begin
try
strData='1659872911';
i:=strtoint(strData);//此处小心溢出
fileName:='文件名';
fileStream:=TFileStream.create(fileName,fmCreate);
fileStream.write(i,sizeof(i));
finally
fileStream.free;
end;
end;读出来var fileStream TFileStream;
i:integer;
fileName,strData:string;begin
try
fileName:='文件名';
fileStream:=TFileStream.create(fileName,fmopenread);
fileStream.read(i,sizeof(i));//读到i里面去了
strdata:=inttostr(i);
finally
fileStream.free;
end;
end;
不咬用string
用array [0..255] of Char
或string[255]
那么看来他就是一个指针了!呵呵,更正:
不咬用string TO 不要用string
var
F: file of myIndex;
begin
AssignFile(F, 'c:\test.txt');
Reset(F,1);
a.Version:=100;
a.Name:='分析系统';
a.Flag:='分析系统数据文件';
a.Maker:='moststar';
a.EMail:='[email protected]';
showmessage(inttostr(SizeOf(a)));
BlockWrite(f,a,SizeOf(a));
CloseFile(F);
end;
end.用Kshape说得方法我定义成这样 F: file of myIndex;
就出现了这个错误提示:Type myIndex needs finalization - not allowed in file type
类型myIndex需要初始化-不允许在文件类型中如果用Blockwrite,就更有意思了.写完后用utlraedit查看内容,里面没有一个字符和我的记录相符合的.用BlockRead读完以后,显示的全是空的字符.郁闷中..........
现在好多人连Pascal都没学好就用Delphi。