• ベストアンサー

chr関数の戻り値について質問です。

chr関数を使用して、バイナリレベルで自由なデータを、ファイルに出力したいと思っていますが、一部のデータがうまくいきません。 たとえば以下のようなコードを実行して、バイナリエディタで中身を見てみると、0x81~0x9Fと0xE0~0xFCまでが全て、0x00に変換されて出力されています。 Dim i As Long Dim binHex As String Open fileName For Binary As #1 For i = 0 To 255   binHex = Chr(i)   Put #1, , binHex Next 0x81等をファイルに書き込む良い方法は無いでしょうか? 詳しい方、アドバイスをお願いいたします。

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

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

Dim i As Long Open Filename For Binary As #1 For i = 0 To 255  Put #1, , CByte(i) Next これでいいのでは?

noname#34685
質問者

補足

なんと! Put で直接数値を書き込めたんですね! Putの仕様が分かってませんでした。 有難う御座いました。 これでやりたいことが出来ると思います。

その他の回答 (1)

  • t_nojiri
  • ベストアンサー率28% (595/2071)
回答No.1

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_k06.htm リファレンス見れば、キャラクターコードの変換関数で、制御コード出てくる方がおかしいと思いますが。 バイナリに Chr()からのリターン値って意味が判らんですけど・・・ これは、テキスト形式にやる事ですよね?

noname#34685
質問者

補足

回答有難う御座います。 制御コードは出てこないんでしょうか? 0x00~0x1Fとかは出てるんですが・・・出るのと出ないのがある仕様なんでしょうか? 別にchr関数に拘ってる訳ではなく、バイナリレベルで操作したいだけです。 テキストエディタで読める必要はないんです。

関連するQ&A