- ベストアンサー
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等をファイルに書き込む良い方法は無いでしょうか? 詳しい方、アドバイスをお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Dim i As Long Open Filename For Binary As #1 For i = 0 To 255 Put #1, , CByte(i) Next これでいいのでは?
その他の回答 (1)
- t_nojiri
- ベストアンサー率28% (595/2071)
回答No.1
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_k06.htm リファレンス見れば、キャラクターコードの変換関数で、制御コード出てくる方がおかしいと思いますが。 バイナリに Chr()からのリターン値って意味が判らんですけど・・・ これは、テキスト形式にやる事ですよね?
質問者
補足
回答有難う御座います。 制御コードは出てこないんでしょうか? 0x00~0x1Fとかは出てるんですが・・・出るのと出ないのがある仕様なんでしょうか? 別にchr関数に拘ってる訳ではなく、バイナリレベルで操作したいだけです。 テキストエディタで読める必要はないんです。
補足
なんと! Put で直接数値を書き込めたんですね! Putの仕様が分かってませんでした。 有難う御座いました。 これでやりたいことが出来ると思います。