- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB2008 バイナリデータの書き込みで)
VB2008でバイナリデータを書き込む際、バイナリデータの先頭に05が入る理由
このQ&Aのポイント
- VB2008でバイナリデータの書き込みを行う際、String型のデータをバイナリデータに書き込むと、先頭に05が入ってしまう現象が発生します。
- 解決策として、文字列の前にNull文字を追加することで、05が入らなくなります。
- VB2008でバイナリデータの書き込みを行う際には、Null文字を追加することで問題を回避できます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 同じようなプログラムを書いたら確かに .TEST になりましたね。 原因は分かりませんけど、他の手段なら正常だったのでそちらをご紹介します。 TextBox1.Text = "TEST" Dim FF As Integer = FreeFile() FileOpen(FF, filename, OpenMode.Binary, OpenAccess.Write) FilePut(FF, TextBox1.Text) FileClose(FF) お試し下さい。
その他の回答 (1)
- airhead-no1
- ベストアンサー率48% (45/92)
回答No.2
先頭が05になるのがよくわからないのですが... 私の所では、04になりました。 で、VSのドキュメントには、以下の事が書いてありました。 それを見と、先頭に文字列の長さが付加されるようです。 「以下、ドキュメント抜粋」 長さのプリフィックスを持つ文字列は、その文字列の長さが格納されている 1 バイトまたはワードを文字列の先頭に付けて文字列の長さを表します。 このメソッドは、4 バイトの符号なし整数として文字列の長さを書き込んでから、その長さ分の文字をストリームに書き込みます。 このメソッドは、BinaryWriter インスタンスの現在のエンコーディングを使用して、長さのプリフィックスを持つ文字列をこのストリームに書き込みます。
質問者
お礼
回答ありがとうございます。 先頭についていた04は文字の長さということですね。 今後の参考にします。
質問者
補足
申し訳ありません。質問文の05は04でした。 私の入力間違いです。
お礼
ありがとうございます。 無事書き込めるようになりました。