漢字コードの取得について

解決


VB初心者  2010-11-06 06:06:46  No: 102671

漢字を入力してコードを取得したいと思ってます。

魔界の仮面弁士様が提示されていました
With CreateObject("ADODB.Stream")
    .Charset = "euc-jp"
    .Open
    .WriteText "東京"
    .SaveToFile "C:\Temp"
    .Close
End With
でファイルに書込むことはできました。

東京=C5EC B5FE

はバイナリーエディタで確認でき、目的を達成したのですが
コードを文字列で取得したいです。
ファイルの読み方が、わかりませんのでご教示お願いしたく投稿しました。

またこの変換はファイル経由でないと無理なのでしょうか?

"東京" →  "C5ECB5FE" となれば理想なのですが・・・・。

よろしくお願いします。


魔界の仮面弁士  2010-11-06 06:29:13  No: 102672

> コードを文字列で取得したいです。
つまり、
  Text1.Text = "C5ECB5FE"
のようなデータでしょうか?

> またこの変換はファイル経由でないと無理なのでしょうか?
Stream を直接読み取れば OK です。

Option Explicit

Private Sub Form_Load()
    Text2.Locked = True
End Sub

Private Sub Text1_Change()
    Text2.Text = ""
    
    If Text1.Text = "" Then
        Exit Sub
    End If
    
    Dim byteArray() As Byte
    With CreateObject("ADODB.Stream")
        .Charset = "euc-jp"
        .Open
        .WriteText Text1.Text
        .Position = 0
        .Type = 1
        byteArray = .Read()
        .Close
    End With

    Dim v As Variant
    For Each v In byteArray
        Text2.SelText = Right("00" & Hex(v), 2)
        Text2.SelStart = Len(Text2.Text)
    Next
End Sub


VB初心者  2010-11-06 18:37:47  No: 102673

魔界の仮面弁士様
ありがとうございました。

byteArray = .Read()と、Right("00" & Hex(v), 2)
が、ポイントだったんですね。
特にRight("00" & Hex(v), 2)は自分の実力不足を痛
感しました。

.Read()は皆目想像できませんでした。ぐぐりかたも
もっと勉強しないといけませんね。

ほんとうにありがとうございました。


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

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






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