ファイル入力のデータを構造体に入れる方法
VB.net(XP:VS2008のみフルインストール)にて
テキストファイルから入力したデータを構造体st_testに入れたいと考えているのですが、実現できません。
どなたか、お力添えをお願いします。
テキストファイルは、事前に構造体(st_test)に値を入れ、
単純にFileOpen→OutPutしています。
(","や" "などでメンバ毎に分割等はしておりません。)
構造体
----------------------
Public Structure st_test
<VBFixedArray(63), MarshalAs(UnmanagedType.ByValArray, SizeConst:=64)> _
Dim A() As Byte
Dim B As Integer
<VBFixedArray(7), MarshalAs(UnmanagedType.ByValArray, SizeConst:=8)> _
Dim N() As Byte
<VBFixedArray((7), (11)), MarshalAs(UnmanagedType.ByValArray,
SizeConst:=(72))> _
Dim S(,) As Byte
<VBFixedArray(11), MarshalAs(UnmanagedType.ByValArray, SizeConst:=12)> _
Dim U() As Integer
End Structure
----------------------
実現しようとしている個所
----------------------
Dim t As String
Dim temp(2) as st_test
FileOpen(1, "test1.txt", OpenMode.Input)
Input(FileNum, t)
'''temp(0) = CType(CType(t, Object), st_test)...?
temp(0) = CType(t, st_test)
|
FileOpen(1, "test2.txt", OpenMode.Input)
Input(FileNum, t)
temp(1) = CType(t, st_test)
----------------------
上記の様に処理を行えば簡単にできるのかと安易な発想でいましたが、
CTypeの処理で'String'の値を'st_test'に変換できません。
旨のエラーになり、うまく実現することができません。
そもそもString型のデータをst_testにキャストすることが不可能なのでしょうか?
それともただ、実現方法がカスなのでしょうか?
実際の構造体のサイズは4000Byteを超え(メンバ数も多いです。。。)
一つ一つ入力していくことが現実的に不可能なため
ファイルよりInputすることしか思いついておりません。
test1.txtの中身を秀丸で開いてみました。
参考になれば・・・。
改行はなく、"福岡"の後等にそれぞれ空白があります。
--------------------------
福岡 . A1 14 15 16 17 18 19 XX XX XX XX XX XX
--------------------------
宜しくお願いします。
お礼
納得です。 ありがとうございました。 ※確信がなかったもので・・・。 ありがとうございました。