热情软件屋

 

在一个VC程序里用文档序列化写出的二进制文件,用VB怎么读出


编号:QA004342
建立日期: 2001年8月5日 最后修改日期:2001年8月5日
所属类别:

贺兴伟:
    操作系统:Windows98
    编程工具:VB,VC
    问题:请问:在一个VC程序里用文档序列化写出的二进制文件,用VB怎么读出,特别是怎样读出其中的字符串,因为VB读文件里的字符串都必须要知道长度,而文档序列化写的字符串是没有标注长度的,那VC用文档序列化读此文件时又是怎样知道这个串的长度的呢。比如它能正确区分出这个串的长度为0,或者为23,或者是其它长度。
    (请不要告诉我字符串的末尾写了'\0',因为我用十六进制编辑器看了,某些字符串的末尾确实是'\0',但还有些字符串的末尾却是0x04或0x03或0x0A,而我的VC程序确实没有写出些东西,并且VC的文档序列化读文件时也不用读这些东西却能够非常正确的读出文件里的每一个字符串)
    水平: 高手

回答:

    VC用文档序列化写进文件的字符串,会首先在此字符串之前写上字符串的长度,这要分两种情况。当字符串的长度小于255字节时,在字符串的前面会用一个字节来表示此字符串的长度.而当字符串的长度超过255字节时,VC会先写入一个0xFF,然后再写入一个四字节的Long量,以表示字符串的长度,最后才写进此字符串,这样在读字符串时就没问题了。

此问题由贺兴伟回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio