|
分類:[VB.NET/VB2005 以降]
2013/03/05(Tue) 16:07:15 編集(投稿者)
VB6で以下のように作成された構造体をを1レコードとして保存しているバイナリファイルを 読み込もうとしているのですがCC、DD、EEについてうまく読み込めず困っています。
VB6側では Type Data AA as byte BB as Long CC as Currency DD as As String * 4 '半角4文字 EE As String * 30 '全角15文字 End Type という構造体です。
VB2010側では以下のように読み込もうとしています。
'**********モジュール****************** Public Data As Structure_Data
Public Structure Structure_Data Dim AA As Byte Dim BB As Integer Dim CC As Decimal <VBFixedStringAttribute(4)>Dim DD As String <VBFixedStringAttribute(30)>Dim EE As String End Structure
'**********フォーム内処理************** Private Sub DataRead() Dim i,RecCount As Integer Dim DataFile As New System.IO.BinaryReader(New System.IO.FileStream([ファイルパス], IO.FileMode.Open)) RecCount = CInt(FileLen([ファイルパス]) \ 45 - 1) 'レコード数取得
For i = 0 To RecCount - 1 Struct_Data.AA = DataFile.ReadByte Struct_Data.BB = DataFile.ReadInt32 Struct_Data.CC = DataFile.CDec(br2.ReadDouble) '←これでは[Decimal 型の値が大きすぎるか、または小さすぎます。]エラーになりました Struct_Data.DD = DataFile.ReadString '←うまく取得できませんでした Struct_Data.EE = DataFile.ReadString Next
DataFile.Close() End Sub アドバイスをお願いします。
|