VB初心者です。
Type bbb
Koumoku1 as string * 3
Koumoku2 as string ← ここは、可変長とする。
Koumoku3 as string * 3
End Type
Global aaa as bbb
----------------------------------
Private Sub Form_Load()
aaa.Koumoku1 = "123"
aaa.Koumoku2 = "456"
aaa.Koumoku3 = "789"
Open "C:\TEST.txt" For Binary As #1
Put #1,,aaa
Close #1
End Sub
上記のようにソースにて実行しますと作成されたファイルの中身が
"123・ 456789"となり、3のあとに2バイトのゴミが入ってしまいます。
なぜでしょうか?
回避方法等がありましたら、お教えください。
ちなみに、Koumoku2の定義は、可変となります。
> "123・ 456789"となり、3のあとに2バイトのゴミが入ってしまいます。
> なぜでしょうか?
これはゴミというか……。
可変長のデータを保存する場合、
何Byteのデータが保存されているかが頭2Byteに書き込まれます。
バイナリエディタなどでみれば分かると思います。
> 回避方法等がありましたら、お教えください。
構造体をPutではなく、Print#とかで変数を一つずつ出力すれば大丈夫かと思いますが……面倒臭いですよね(^^;
逆に現状で困ることがあるのでしょうか?
同じ構造体でPut、Getしてる分には特に問題ないと思うんですが。
nanashiさんありがとうございました。
回避方法は、また調査してみます。