关于数据类型的大小和读取
定义了一个类型
type AAA= packed record
a:string[4];
b:byte;
c:byte;
end;
VAR
X :AAA;
用SIZEOF显示其大小时为什么是12,不是6
怎样从文件中读入数据到变量X中呢,用什么函数,最好有个示例!
问题点数:60、回复次数:11Top
1 楼wangzh(独孤求问)回复于 2001-09-07 12:46:05 得分 0
var
recordfile:TFile;
ifeof:Boolean;
begin
assignfile(recordfile, 'c:\record.dat');
reset(recordfile, 1);
blockread(recordfile, X , sizeof(X ), ifeof);
end;
end;Top
2 楼wangzh(独孤求问)回复于 2001-09-07 12:47:51 得分 30
finally
closefile(recordfile);Top
3 楼dsa(我爱学英语)回复于 2001-09-07 12:48:22 得分 0
gzTop
4 楼ttyp(@http://www.cnblogs.com/ttyp/)回复于 2001-09-07 13:36:11 得分 0
to wangzh(独孤求问):
blockread 的第四个参数不是数字型的吗?Top
5 楼Kingron(单身走我路……)回复于 2001-09-07 13:49:52 得分 20
应该一样啊,这个还没有达到需要Align字段的情况,结果应该是一样:7!
这个讨论,已经我回答过。搜索Packed就可以找到。Top
6 楼wangzh(独孤求问)回复于 2001-09-07 13:50:26 得分 0
呵呵,对不起,是我马虎了。
ifeof: integer;Top
7 楼cszhz(Leo)回复于 2001-09-07 13:51:19 得分 5
没错!Top
8 楼ttyp(@http://www.cnblogs.com/ttyp/)回复于 2001-09-07 14:19:07 得分 0
to Kingron(戒网中……):你试过了吗,前两天的帖子我看了
但我试了好像还是按4个字节对齐的::(
to wangzh(独孤求问):呵呵,谢谢你Top
9 楼ttyp(@http://www.cnblogs.com/ttyp/)回复于 2001-09-07 16:25:19 得分 0
upTop
10 楼Tense(何必)回复于 2001-09-07 16:57:16 得分 5
try it another time.Top
11 楼Kingron(单身走我路……)回复于 2001-09-10 14:44:45 得分 0
我当然测试过。Top




