ダブルバイトの文字を1バイトにするには?

解決


おゆき  2002-08-13 10:53:46  No: 104682

文字列変換で困っています。
どなたかお助けください。お願いします。

**************************************************
strBuff = "あいう"
strtrans = StrConv(strBuf, vbFromUnicode)
Debug.Print LenB(strBuff)
**************************************************
これを実行するとstrtransには6が返りますよね。
これは一文字を2バイトで計算していると思うのですが、
実際は「82 A0 82 A2 82 A4」というバイナリデータで
なりたっていると思います。
そこで、VBでこれらの一つ一つを取り出したいのですが、
それは実現可能でしょうか?
というのも、これらの文字をChr(&H82)やChr(&HA0)として
サーバー側に1バイトずつ送信したいのです。
もちろん、サーバー側からも1バイトデータが送られてくるので、
2バイトで構成される文字データの場合は2つをくっつけて
「あ」などにしたいのもありますが、とりあえず送信だけでもしたいのです。
よろしくお願いいたします。


Say  2002-08-13 11:18:01  No: 104683

byte型配列に入れるとか・・・。


あんちゃん  2002-08-14 19:18:04  No: 104684

Dim ReadData() As Byte


ReDim ReadData(0 To ReadSize - 1)


HexChr = Hex(ReadData(i))
で取り出し可能


おゆき  2002-08-15 03:57:10  No: 104685

Sayさん、あんちゃんさん、ありがとうございます。
申し訳ないのですが、あんちゃんさんが
書いてくれたものをどう実行させていいのか分かりませんでした。
ヘルプを見たのですがイマイチ・・・。
例えば strBuff = "あいう"だったときは、
どのようにしてHexChr の内容を見れるのでしょうか?
お手数ですが、再度ご教授お願いいたしますm(__)m


あき☆彡  2002-08-15 07:15:12  No: 104686

こんな感じです(^o^)/

Private Sub Command1_Click()
    Dim strBuff As String
    Dim bBuff() As Byte
    Dim i As Integer
    strBuff = "あいう"
    bBuff = strBuff
    For i = LBound(bBuff) To UBound(bBuff)
        Debug.Print Hex(bBuff(i))
    Next i
End Sub


おゆき  2002-08-15 08:01:37  No: 104687

あき☆彡さん、ご回答ありがとうございます。
なるほど、LBoundとUBoundを使うのですね。
bBuffにstrBuffを入れるってとこがミソかも。
これで次へ進めそうです♪

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


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

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






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