作者laijackai (鬼才凯)
看板Visual_Basic
标题[.NET] 这是VB的BUG吗?(已解决)
时间Tue Mar 27 16:21:06 2012
请输入专案类型(网站专案或者应用程式专案):VB2008应用程式专案
Struct.vb模组是宣告资料型态
Execute.vb模组是放解封包的程式码
form1.vb是我的表单
我把档案的资料结构都存进Device.Profile的ArrayList里,
存了十笔资料後发现每一笔都是最後一笔(到中断点十笔资料都还正确),
从其他地方又存了另外十笔资料进来,结果变成两组最後一笔资料。
请问这种要怎麽解?
----Struct.vb-------------------------------------------------------
Structure CmdTable
Dim MainCmd, SubCmd, Data() As Byte
Dim DataCount As Integer
End Structure
Structure ProfileName
Dim profileName() As Byte '[16];
End Structure
Structure Device_str
Dim Profile As ArrayList
End Structure
Public Device As New Device_str
----ExecuteCmd.vb---------------------------------------------------
Public Function replyReadProfileName(ByVal cmd As CmdTable)
If cmd.DataCount = 16 Then
'....
ElseIf (cmd.DataCount Mod 16 = 0) Then
Device.Profile.Clear()
Dim Profile As New ProfileName
Dim b(16) As Byte
Dim deb As New ArrayList
For i = 0 To (cmd.DataCount / 16) - 1
For j = 0 To 16 - 1
b(j) = cmd.Data(i * 16 + j)
Next
Profile.profileName = b
Device.Profile.Add(Profile) '中断点
ReDim b(16) '就是这行解决!!
Next
End If
Return 0
End Function
----Form1.vb-------------------------------------------------------
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Device.Profile = New ArrayList
Dim cmd As New CmdTable
Dim d() As Byte = { _
74, 65, 73, 74, 5F, 70, 63, 30, 20, 20, 20, 20, 20, 20, 20, 0 _
, 74, 65, 73, 74, 5F, 70, 63, 31, 20, 20, 20, 20, 20, 20, 20, 0 _
, 74, 65, 73, 74, 5F, 70, 63, 32, 20, 20, 20, 20, 20, 20, 20, 0 _
, 74, 65, 73, 74, 5F, 70, 63, 33, 20, 20, 20, 20, 20, 20, 20, 0 _
, 74, 65, 73, 74, 5F, 70, 63, 34, 20, 20, 20, 20, 20, 20, 20, 0 _
, 74, 65, 73, 74, 5F, 70, 63, 35, 20, 20, 20, 20, 20, 20, 20, 0 _
, 74, 65, 73, 74, 5F, 70, 63, 31, 20, 20, 20, 20, 20, 20, 20, 0 _
, 74, 65, 73, 74, 5F, 70, 63, 37, 20, 20, 20, 20, 20, 20, 20, 0 _
, 0, 65, 73, 74, 5F, 70, 63, 38, 20, 20, 20, 20, 20, 20, 20, 0 _
, 74, 65, 73, 74, 5F, 70, 63, 39, 20, 20, 20, 20, 20, 20, 20, 0}
cmd.DataCount = 160
cmd.Data = d
replyReadProfileName(cmd)
End Sub
-------------------------------------------------------------------
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.38.86.243
1F:→ laijackai:解决了~ 用ReDim的方式 03/27 17:22
※ 编辑: laijackai 来自: 114.38.86.243 (03/27 20:19)
※ 编辑: laijackai 来自: 114.38.86.243 (03/27 20:28)
※ 编辑: laijackai 来自: 114.38.86.243 (03/27 20:29)
※ 编辑: laijackai 来自: 114.38.86.243 (03/27 20:29)
※ 编辑: laijackai 来自: 114.38.86.243 (03/27 20:33)