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

关于VB中动态数组的二进制存储有关问题

2012-01-21 
关于VB中动态数组的二进制存储问题Private Type cintC As IntegerEnd TypePrivate Type BCtype() As cEnd

关于VB中动态数组的二进制存储问题

Private Type c
intC As Integer
End Type

Private Type B
Ctype() As c
End Type

Private mtype As B

Private Sub Form_Load()

Dim lngFileNum As Long

ReDim mtype.Ctype(1 To 10)

mtype.Ctype(1).intC = 100 '设置查看数据

lngFileNum = FreeFile()

Open "C:\1.dat" For Binary Access Write As lngFileNum
Put lngFileNum, , mtype
Close lngFileNum

End Sub

用UltraEdit打开所写的文件内容如下:
01 00 0A 00 00 00 01 00 00 00 64 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
...

想请教的是: 
  第一行的 01 00 0A 00 00 00 01 00 00 00 中的 这些数据表示的是什么意思?
  0A 00 00 00这4个字节存储的应该是重新定义的数组的大小10 即 ReDim mtype.Ctype(1 To 10)
  其他的就猜不出了。求教下...



[解决办法]
01 00 0A 00 00 00 01 00 00 00 64 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

红:数组长度10, Ctype(1 To 10)
绿:100, mtype.Ctype(1).intC = 100
蓝:0, mtype.Ctype(2).intC ~ mtype.Ctype(10).intC

黄色的0100可能表示mtype类型。如果mtype是数组的话那么黄色部分貌似为0000。还有剩余的不知为什么意思。

楼主再试试Private mtype() As B,那估计就更麻烦了,很奇怪vb的这样写法,挨顺序一个个些不就行了吗。
[解决办法]
文件头一般记录文件的类型,尺寸,有些还记录创建时间,压缩幅度等等,不同格式的文件记录的信息不一样

热点排行