VB 把一个二进制档案里的一组数据提取出来

上图是档案在UE的结构...头64byte是名字..之后是23组4byte的数据PublicTypemon_datanameAsString*64item(22,3)As... 上图是档案在UE的结构...头64byte是名字..之后是 23组4byte的数据
Public Type mon_data
name As String * 64
item(22, 3) As Byte
End Type
数据的结构....
之后我在源文件提取了数据放在Mon中....但把数据一个一个放进新档案时...数据不同了
Open "tmp.tmp" For Binary As #10
--------------------------------------------------------------------
Put #10, , Mon.item
--------------------------------------------------------------------
For z = 0 To 22
For j = 0 To 3
Put #10, , Mon.item(z, j)
Next j
Next z
--------------------------------------------------------------------
close #10

蓝色部分是(Put #10, , Mon.item)...这里数据是正确的
但白色那部分是一个个PUT的....却变成另外的东西....谁可以告诉我是怎回事
因为某几个数据我需要改动再保存...现在都乱了不知怎搞
展开
 我来答
网海1书生
科技发烧友

2014-12-16 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部
那是因为你把两个循环的顺序搞错了,换成这样就OK了:

For j = 0 To 3
For z = 0 To 22
Put #10, , mon.item(z, j)
Next z
Next j

补充一下:实际上你在定义结构的时候就已经有偏差了,23组4byte的数组,应该声明为
item(3, 22) As Byte
即第1维应该是每组数量(相当于横坐标),第2维则是组数(相当于纵坐标),这样才合乎逻辑,这样的话,你的代码就不用修改也没问题了,而且这样才更合乎习惯。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式