[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/05/18(Wed) 10:26
投稿者名:NM25
URL :
タイトル:
文字コードを漢字変換するには?
始めまして NM25 と申します。
VBを使用してPCと他計測機器と通信を行ってデータを取得しForm上に表示させたいのですが、取得デ
ータ内に
漢字のコードがシフトJISコードが含まれています。
このシフトJISコードを漢字に変換する関数等あるのでしょうか?
ネット等では漢字→コード変換はいくつかありましたが、コード→漢字変換が見つけられませんでし
た。
環境は
OS : Windows98 SE
IDE : VB6 SP6
になります。
以上、よろしくお願いします。

投稿時間:2005/05/18(Wed) 10:43
投稿者名:ソンソン
Eメール:
URL :
タイトル:
Re: 文字コードを漢字変換するには?
VB試せる環境がありませんので、想像でかきます。

その計測データがバイト配列でしたら、
'b() 計測データバイト配列、strData 変換後文字列
strData = StrConv(b(), vbUnicode)
とかで文字列に変換できるかと思います。
ただ、送られてくるデータが、ビッグエンディアンだった場合、リトルエンディアンに変換
しないといけないかな?

投稿時間:2005/05/18(Wed) 12:02
投稿者名:NM25
URL :
タイトル:
Re^2: 文字コードを漢字変換するには?
ありがとうございます。
早速試してみます。
ちなみにデータは
計測機器内に 細 の文字のとき 9C8D と送られてきます。
細 はシフトJISコードで 8D9C なので上位下位が入れ替わっていますけど。
ありがとうございます。

投稿時間:2005/05/18(Wed) 12:57
投稿者名:いな
Eメール:
URL :
タイトル:
Re^3: 文字コードを漢字変換するには?
> 細 はシフトJISコードで 8D9C なので上位下位が入れ替わっていますけど。
> ありがとうございます。

とありますが!先のソンソンさんのレスの中にありました。

>ただ、送られてくるデータが、ビッグエンディアンだった場合、
>リトルエンディアンに変換しないといけないかな?

この意味は理解しての発言ならば、問題は無いのですがいかが?

投稿時間:2005/05/18(Wed) 13:17
投稿者名:NM25
URL :
タイトル:
Re^4: 文字コードを漢字変換するには?
ビッグエンディアン、リトルエンディアンを一応ネット検索にて調べてみました。
今回の受信データはリトルエンディアンって事では?と思っています。
知識不足のためネット検索等で色々調べながらなので、時間が掛かりご迷惑おかけしております。

投稿時間:2005/05/18(Wed) 17:54
投稿者名:いな
Eメール:
URL :
タイトル:
Re^5: 文字コードを漢字変換するには?
> ビッグエンディアン、リトルエンディアンを一応ネット検索にて調べてみました。
> 今回の受信データはリトルエンディアンって事では?と思っています。
> 知識不足のためネット検索等で色々調べながらなので、
> 時間が掛かりご迷惑おかけしております。

いや、先のレスだと
>細 はシフトJISコードで 8D9C なので上位下位が入れ替わっていますけど。

けど。の後に、「なぜなんでしょうか?」
といまひとつ納得してなさそうな雰囲気だったので・・・。

リトルエンディアン、ビックエンディアンについてそういった送受信の方法が
あるんだよ〜〜。ということを理解してたのかなぁ〜と思っただけです。

投稿時間:2005/05/18(Wed) 15:40
投稿者名:NM25
URL :
タイトル:
Re^2: 文字コードを漢字変換するには?
すみません。色々試してみましたが漢字を表示出来ませんでした。
例えば”漢字”(シフトJISコードですと 8ABF8E9Aになります)を通信で受信すると BF8A9A8E とな
りま
す。
これを例えば Form1のtext.text に”漢字”と表示させるにはどのように処理するのでしょうか?
ご迷惑おかけして申し訳ありませんが、お時間があるときにでもお教えください。
よろしくお願いします。

投稿時間:2005/05/18(Wed) 16:50
投稿者名:YK
Eメール:
URL :
タイトル:
Re^3: 文字コードを漢字変換するには?
> 例えば”漢字”(シフトJISコードですと 8ABF8E9Aになります)を通信で受信すると BF8A9A8E とな

こんにちは。
2バイトセットならば下記の方法で
1バイトが入っていたら駄目です。


Private Sub Command1_Click()
    Dim bytS(3) As Byte
    Dim bytD()  As Byte
    Dim i       As Long

    bytS(0) = &HBF
    bytS(1) = &H8A
    bytS(2) = &H9A
    bytS(3) = &H8E

    ReDim bytD(UBound(bytS))

    For i = 0 To UBound(bytS) Step 2
        bytD(i) = bytS(i + 1)
        bytD(i + 1) = bytS(i)
    Next

    Debug.Print StrConv(bytD, vbUnicode)
End Sub

投稿時間:2005/05/19(Thu) 08:05
投稿者名:NM25
URL :
タイトル:
表示できました。
そんそんさん、いなさん、YKさんいろいろとありがとうございました。
Form上に漢字表示できました。(でも受信データ量が多いので大変そう)
VBの勉強もっとしないといけないなーと思いました。
本当にありがとうございます。