怎样将如下纪录型变量写到文件里头去?还有有没有比较简单的方法求出纪录的长度?(20分)

  • 主题发起人 主题发起人 我是坏蛋
  • 开始时间 开始时间

我是坏蛋

Unregistered / Unconfirmed
GUEST, unregistred user!
type
PForumInforStruct = ^TForumInforStruct;
TForumInforStruct = record
Column : string;
Date : string;
title : string;
Author : string;
IDNum : string;
Content : string;
end;

var

ForumInforStruct: TForumInforStruct;

{...赋值...}

AssignFile(ToF, FileName);
Rewrite(ToF, 1);
BlockWrite(ToF, ForumInforStruct, len);
CloseFile(ToF);

{..???..}

{ 还有有没有比较简单的方法求出这个纪录的长度? }

 
记录型长度:sizeof(TForumInforStruct);
写可以这样:Stream.WriteBuffer(PForumInforStruct,sizeof(TForumInforStruct));、
Stream.SaveToFile(文件)
 
记录型长度:sizeof(TForumInforStruct);?
可是TForumInforStruct个元素再赋值之前事不定长的啊!
 
改用下列声明
TForumInforStruct = record
Column : string[255];
Date : string[255];
title : string[255];
Author : string[255];
IDNum : string[255];
Content : string[255];
end;
 
你要写文件的话,不能直接用STRING像这样:
Str:String
File.Write(PChar(Str)^,Size);
 
因为它实际上是一个指向结构体的指针。
 
只要把String换成ShortString就可以用SizeOf来获取长度了, 也可以直接写文件了
 
但是万一STRING长度超过255那就。。。。
 
wolf_cyj, 是正确办法。
求记录数可以用流的长度余以记录类型的长度。
 
多人接受答案了。
 
后退
顶部