• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB2008 バイナリデータの書き込みで)

VB2008でバイナリデータを書き込む際、バイナリデータの先頭に05が入る理由

このQ&Aのポイント
  • VB2008でバイナリデータの書き込みを行う際、String型のデータをバイナリデータに書き込むと、先頭に05が入ってしまう現象が発生します。
  • 解決策として、文字列の前にNull文字を追加することで、05が入らなくなります。
  • VB2008でバイナリデータの書き込みを行う際には、Null文字を追加することで問題を回避できます。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

こんにちは。 同じようなプログラムを書いたら確かに .TEST になりましたね。 原因は分かりませんけど、他の手段なら正常だったのでそちらをご紹介します。 TextBox1.Text = "TEST" Dim FF As Integer = FreeFile() FileOpen(FF, filename, OpenMode.Binary, OpenAccess.Write) FilePut(FF, TextBox1.Text) FileClose(FF) お試し下さい。

noname#246234
質問者

お礼

ありがとうございます。 無事書き込めるようになりました。

その他の回答 (1)

回答No.2

先頭が05になるのがよくわからないのですが... 私の所では、04になりました。 で、VSのドキュメントには、以下の事が書いてありました。 それを見と、先頭に文字列の長さが付加されるようです。 「以下、ドキュメント抜粋」 長さのプリフィックスを持つ文字列は、その文字列の長さが格納されている 1 バイトまたはワードを文字列の先頭に付けて文字列の長さを表します。 このメソッドは、4 バイトの符号なし整数として文字列の長さを書き込んでから、その長さ分の文字をストリームに書き込みます。 このメソッドは、BinaryWriter インスタンスの現在のエンコーディングを使用して、長さのプリフィックスを持つ文字列をこのストリームに書き込みます。

noname#246234
質問者

お礼

回答ありがとうございます。 先頭についていた04は文字の長さということですね。 今後の参考にします。

noname#246234
質問者

補足

申し訳ありません。質問文の05は04でした。 私の入力間違いです。