binary形式ファイルをGetして文字列にしたい

解決


こまりんこ  2006-06-30 19:22:50  No: 95900

VBAでの質問です。
binary形式のファイルがあります。開くと
000102030405060708090Aという感じで並んでいます。
これを分割して各string形式の変数に入れたいのです。
00010203/040506/070809/0Aというふうに。
最終的にはその文字列を10進に直したりもするわけですが。
type AAA
 bbb(3) as Byte
 CCC(2) as Byte
 DDD(2) as Byte
 EEE as Byte
end type
という感じで拾ってはみたものの、2桁にならなかったり、
文字列に変換しにくいです。
何かいい案はありませんでしょうか。


魔界の仮面弁士  2006-06-30 20:02:28  No: 95901

> 2桁にならなかったり
&H00〜&H0F の範囲のデータなら、1桁になるのは当然かと。
むしろ、それらが2桁(10〜FF)のデータに化けてしまったら問題ですよね。

> 文字列に変換しにくいです。
どのようにして変換していますか?

> 何かいい案はありませんでしょうか。
バイナリデータ(Byte配列)を 16 進数表現の文字列にするコード。

Function BinaryToHexString(ByRef Binary() As Byte) As String
    With CreateObject("Microsoft.XMLDOM").createElement("e")
        .DataType = "bin.hex"
        .NodeTypedValue = Binary
        BinaryToHexString = .Text
    End With
End Function


こまりんこ  2006-06-30 20:18:20  No: 95902

>むしろ、それらが2桁(10〜FF)のデータに化けてしまったら問題ですよね。
言葉が足りませんでした。00という2桁、という意味でした。

>どのようにして変換していますか?
色々ぐりぐりと動かしてはみたのですが、上手く行きませんでした…

>バイナリデータ(Byte配列)を 16 進数表現の文字列にするコード。
まさにそれを必要としていました。
本当にありがとうございます!
さらに精進致します。


魔界の仮面弁士  2006-06-30 20:33:21  No: 95903

> 言葉が足りませんでした。00という2桁、という意味でした。

a = &HA
S = Right("00" & Hex(a), 2)


蛇足  2006-06-30 20:58:43  No: 95904

解決しているので蛇足ですが、こまりんこさんの今後のために一つ。

>>どのようにして変換していますか?
>色々ぐりぐりと動かしてはみたのですが、上手く行きませんでした…
魔界の仮面弁士さんは変換方法を聞かれていますが
その内容が「色々ぐりぐり」ではお話になりません。
自分のやっている処理に自信がなかったり、コードを見せるのが
恥ずかしかったりする気持ちはわかりますが、ここは最低限再現可能な
コード等を書くべきではないでしょうか。

質問には正しく回答しないと、正しい答えは導き出せませんよ(^^;


おせっかい野郎  2006-06-30 21:50:19  No: 95905

マルチするなよ。もう回答ついちゃってるけど。
http://pc8.2ch.net/test/read.cgi/bsoft/1150639357/387


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加