读文件,取出后发现少了一个字节,这是怎么回事?
我自定义如下:
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