【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?

お世話になっております。

やりたいのは、MSCommを使用しデータを送った時、
データのチェックをしたいのですが、Chr関数(値を151を入れる)で作った文字をAsc関数で戻すと値が0になってしまってチェックできません。
文字列で受け取ったデータをどのようにコード変換したらよいでしょうか?

VBのバグなのか知りませんけど、
例えば、Asc(Chr$(151))、AscB(Chr$(151))は0を返し、AscB(ChrB$(151))だけが151を返します。

使用しているのは、
VB6SP4
Win2000です。

宜しくお願い致します。

A 回答 (1件)

たしかにChr$(151)は「0」を返しますね


ただ、この値は制御文字かな?(あまり自信ありません)
自分がASCIIコードの調査用に作成したコーディングを下記に記します
イミディエイトウィンドウにて確認できます
着眼点が間違っていたらすみません
'~~~~~~~~~~~
Dim Tmp As String

Private Sub Command0_Click()
Dim i As Integer
Tmp = ""
For i = 0 To 255 Step 1
Tmp = Tmp & Chr$(i)
'Debug.Print Format(i, "000") & " : " & Chr$(i)
Next i
Debug.Print Tmp
End Sub

Private Sub Command1_Click()
Dim i As Integer
Dim n As Integer
Dim w As Byte
Dim ret As String
n = Len(Tmp)
ret = ""
For i = 1 To n Step 1
w = Asc(Mid(Tmp, i, 1))
ret = ret & Hex(w \ 16)
ret = ret & Hex(w Mod 16)
'Debug.Print Format(i, "000") & " : " & Hex(w \ 16) & Hex(w Mod 16)
ret = ret & " "
Next i
Debug.Print ret
End Sub
'~~~~~~~~~~~
    • good
    • 0
この回答へのお礼

素早い回答有難うございます。

Chr$(151)が、0を返すのは、Windowsで使用されていない文字のため、みたいです。

データの送受信ですが、MSCommのInputModeをバイナリに代えることで実現できました。

それでは、また。

お礼日時:2001/09/07 13:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報