前提
VB6.0をVB.NETに移行してます。
VB6.0のGetがサポートされなくなったので、FileGetにしたところ、エラーが発生します。
実現したいこと
読み込んだファイルを構造体に格納したいです。
FileGetのエラーを解消したいです。
発生している問題・エラーメッセージ
FileGetに到達したときに以下のメッセージが表示されます
「System.IO.EndOfStreamException: 'ストリームの終わりを超えて読み取ることはできません。' 」
該当のソースコード
VB6.0(構造体)
1Type tagPOSSTATE_TBL 2 3 Data1 As String * 8 4 Data2 As String * 8 5 Data3 As String * 2 6 Data4 As String * 1 7 Data5 As String * 1 8 Data6 As String * 8 9 Data7 As String * 8 10 Data8 As String * 2 11 Data9 As String * 8 12 Data10 As String * 8 13 Data11 As String * 8 14 Data12 As String * 6 15 Data13 As String * 6 16 Data14 As String * 5 17 Data15 As String * 4 18 Data16 As String * 4 19 Data17 As String * 97 20 21 End Type
VB6.0(Form)
1Option Explicit 2 3Sub SeekData() 4 5 Dim FileName As String 6 Dim sct As struct 7 8 Open FileName For Binary Shared As #1 9 Get #1, 1, sct 10 Close #1 11 12End Sub
VB.NET(構造体)
1ublic Class Class1 2 Structure struct 3 <VBFixedArray(8)> Public Data1 As String 4 <VBFixedArray(8)> Public Data2 As String 5 <VBFixedArray(2)> Public Data3 As String 6 <VBFixedArray(1)> Public Data4 As String 7 <VBFixedArray(1)> Public Data5 As String 8 <VBFixedArray(8)> Public Data6 As String 9 <VBFixedArray(8)> Public Data7 As String 10 <VBFixedArray(2)> Public Data8 As String 11 <VBFixedArray(8)> Public Data9 As String 12 <VBFixedArray(8)> Public Data10 As String 13 <VBFixedArray(8)> Public Data11 As String 14 <VBFixedArray(6)> Public Data12 As String 15 <VBFixedArray(6)> Public Data13 As String 16 <VBFixedArray(5)> Public Data14 As String 17 <VBFixedArray(4)> Public Data15() As String 18 <VBFixedArray(4)> Public Data16 As String 19 <VBFixedArray(97)> Public Data17 As String 20 End Structure 21 22End Class
VB.NET(Form)
1 Dim FileName As String 2 Private sct As Class1.struct 3 4 Sub SeekData() 5 FileName = TextBox1.Text 6 FileOpen(1, FileName, OpenMode.Binary) 7 Dim tmp As ValueType 8 tmp = sct 9 FileGet(1, tmp) ' ここでエラーメッセージが表示される 10 FileClose(1) 11 End Sub 12 13End Class 14
回答1件
あなたの回答
tips
プレビュー