K kevin.j Unregistered / Unconfirmed GUEST, unregistred user! 2000-01-02 #1 有一个非文本文件,我想给它加一个文件头, 文件头包括一个我定义的字符串(定长),然后是文件正文的长度(长度不定). 最后是文件体,我该如何读写文件头中的文件体长度?
K kevin.j Unregistered / Unconfirmed GUEST, unregistred user! 2000-01-02 #3 老哥,请详细点. 我想从我定义的字符串后面开始, 一个一个字节的读,一直读到数字的结束处(结束处我可以在写的时候加入一个特殊的字符)然后再用strtotint转换过来使用,不知可行否?
M menxin Unregistered / Unconfirmed GUEST, unregistred user! 2000-01-02 #4 长度为何会不定呢?文件长度是不定的,但存储空间的长度固定不就行了! 如: 00 00 23 45 要空足够的位,我想这样做简单些。
P popeye Unregistered / Unconfirmed GUEST, unregistred user! 2000-01-03 #5 文件名:test.txt var f:file of type; i,s:longint; x:byte; ... assignfile(f,'test.txt'); reset(f);//以读方式打开 //假设你要从第24个字节开始读 seek(f,24);//移动读文件指针 s:=filesize(f); for i:=24 to sdo begin read(f,x);//每次读一个字节 if x=你设定的控制字符 then //结束 end;
文件名:test.txt var f:file of type; i,s:longint; x:byte; ... assignfile(f,'test.txt'); reset(f);//以读方式打开 //假设你要从第24个字节开始读 seek(f,24);//移动读文件指针 s:=filesize(f); for i:=24 to sdo begin read(f,x);//每次读一个字节 if x=你设定的控制字符 then //结束 end;
K kevin.j Unregistered / Unconfirmed GUEST, unregistred user! 2000-01-04 #6 谢谢popeye,menxin. 你们的建议对我帮助很大, menxin的方法我试了,好使 但是写的时候得转换成char, popeye的方法对文本文件好使,对FileWrite写的文件不一定都好使, 而且我发现写进去的字符串用编辑软件无法看:< 所以估计我写进去的特殊字符':'也变形了吧! 有一个疑问:我先用一个string类型的变量读长度为8的字符串,再读长度为7的 字符串,8的显示正确,7的不正确,如果我定义两个string类型的变量,分别读 两个字符串.就都可以正常显示了,这是为什么?而且我读长度为8的字符串时 只要把长度设成3或者3-8之间的数时,也能正常读出来,why?
谢谢popeye,menxin. 你们的建议对我帮助很大, menxin的方法我试了,好使 但是写的时候得转换成char, popeye的方法对文本文件好使,对FileWrite写的文件不一定都好使, 而且我发现写进去的字符串用编辑软件无法看:< 所以估计我写进去的特殊字符':'也变形了吧! 有一个疑问:我先用一个string类型的变量读长度为8的字符串,再读长度为7的 字符串,8的显示正确,7的不正确,如果我定义两个string类型的变量,分别读 两个字符串.就都可以正常显示了,这是为什么?而且我读长度为8的字符串时 只要把长度设成3或者3-8之间的数时,也能正常读出来,why?