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

解決


おゆき  2002-08-13 01:53:46  No: 104682  IP: [192.*.*.*]

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

**************************************************
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 02:18:01  No: 104683  IP: [192.*.*.*]

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

編集 削除
あんちゃん  2002-08-14 10:18:04  No: 104684  IP: [192.*.*.*]

Dim ReadData() As Byte


ReDim ReadData(0 To ReadSize - 1)


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

編集 削除
おゆき  2002-08-14 18:57:10  No: 104685  IP: [192.*.*.*]

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

編集 削除
あき☆彡  2002-08-14 22:15:12  No: 104686  IP: [192.*.*.*]

こんな感じです(^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-14 23:01:37  No: 104687  IP: [192.*.*.*]

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

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

編集 削除