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桁にならなかったり、
文字列に変換しにくいです。
何かいい案はありませんでしょうか。
> 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
>むしろ、それらが2桁(10〜FF)のデータに化けてしまったら問題ですよね。
言葉が足りませんでした。00という2桁、という意味でした。
>どのようにして変換していますか?
色々ぐりぐりと動かしてはみたのですが、上手く行きませんでした…
>バイナリデータ(Byte配列)を 16 進数表現の文字列にするコード。
まさにそれを必要としていました。
本当にありがとうございます!
さらに精進致します。
> 言葉が足りませんでした。00という2桁、という意味でした。
a = &HA
S = Right("00" & Hex(a), 2)
解決しているので蛇足ですが、こまりんこさんの今後のために一つ。
>>どのようにして変換していますか?
>色々ぐりぐりと動かしてはみたのですが、上手く行きませんでした…
魔界の仮面弁士さんは変換方法を聞かれていますが
その内容が「色々ぐりぐり」ではお話になりません。
自分のやっている処理に自信がなかったり、コードを見せるのが
恥ずかしかったりする気持ちはわかりますが、ここは最低限再現可能な
コード等を書くべきではないでしょうか。
質問には正しく回答しないと、正しい答えは導き出せませんよ(^^;
マルチするなよ。もう回答ついちゃってるけど。
http://pc8.2ch.net/test/read.cgi/bsoft/1150639357/387
ツイート | ![]() |