VB初心者です。
今、VB6.0で外部ファイルを読込み、読込んだデータを変換するプログラムを作成中です。
ファイルから読み込んだデータが16進の部分とキャラクタの部分と混在しており、16進の部分をキャラクタに変換したいのですが
どのようにすれば良いのでしょうか?
ご存知の方、ご教授願います。
> 16進の部分をキャラクタに変換したいのですが
質問が漠然としているため、回答に困るのですが、具体的は、
どのような値を、どのようなキャラクタに変換したいのでしょうか?
とりあえず、16進数表記の文字列、例えば「ABCD」を数値にしたいなら、
『Debug.Print CLng("&HABCD")』のように、先頭に &H を
付加する事で変換できます。
文字コードからの変換という事であれば、ChrW関数やChr関数などを使って、
数値から、UCS-2やShift_JISの文字に変換する事はできます。euc-jp や
iso-2022-jp の場合は、ADODB.Streamオブジェクトにて変換できます。
魔界の仮面弁士さん、ありがとうございました。
下記のような感じで処理したらうまく行きました。
'************************************************************
' パックをゾーンに変換する
'************************************************************
Function BinToHex(ByVal StrBin As String) As String
Dim sData$, sBuff As String
Dim lData&, lCnt As Long
Dim J As Integer
sBuff = ""
For J = 1 To Len(StrBin)
sBuff = sBuff & Hex(Asc(Mid(StrBin, J, 1)))
Next
BinToHex = sBuff
End Function
> Hex(Asc(Mid(StrBin, J, 1)))
この場合、StrBinの内容によっては、桁がずれてしまいますが、大丈夫ですか?
たとえば、『あ』の文字などは「82A0」という 4文字 に変換されますし、
『z』の文字なら「7A」という 2文字 に、タブ文字『 』は
「9」という 1文字 だけになったりしますよね。