首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

读文件,取出后发现少了一个字节,这是咋回事

2012-01-19 
读文件,取出后发现少了一个字节,这是怎么回事?我自定义如下:Typefle_2aa(23)AsIntegerbb(23)AsIntegercc(2

读文件,取出后发现少了一个字节,这是怎么回事?
我自定义如下:
Type   fle_2
    aa(23)         As   Integer
    bb(23)       As   Integer
    cc(23)     As   Integer
    dd(23)     As   Integer
。。。。。
。。。。
  End   Type
                                                  注:           ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '以上共352字节
Type   str_Message
    strMessage           As   String
End   Type

Public   FleThr               As   fle_2
Public   FleThrO             As   str_Message


然后读文件:
        Open   strfPaht   For   Binary   As   #1
                  Get   #1,   1,   FleThr
                  Get   #1,   352,   FleThrO
        Close   #1


问题是FleThrO.strMessage中存取的数据     第一位没有了,不见了


请问这是为什么呢?

先谢谢喽

[解决办法]
Get #1, 1, FleThr
改成
Get #1, 0, FleThr
[解决办法]
干脆什么都不用试试,如果这样也出问题,可能是你写数据时出错了。

Open strfPaht For Binary As #1
Get #1, , FleThr ' '既然已经读了352个字节,那
Get #1, , FleThrO ' '下面是不是应该从353开始读了。
Close #1
[解决办法]
Type str_Message
strMessage As String
End Type
应该跟这个定义有关系,strMessage如果是定长字符串应该不会发生这个问题
使用变长字符串,有可能会把第一个字符当成长度描述符解释,因此会丢掉第一个字符
[解决办法]
Type str_Message
strMessage() As byte
End Type

Public FleThr As fle_2
Public FleThrO As str_Message


然后读文件:
Open strfPaht For Binary As #1
Get #1, 1, FleThr
Get #1, 1+len(FleThr), FleThrO.strMessage
Close #1

[解决办法]
Type str_Message
strMessage() As string *1 //也可
End Type

热点排行