OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

文字列からASCIIコードの取得方法

  • すぐに回答を!
  • 質問No.131395
  • 閲覧数583
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 30% (7/23)

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

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

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

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

宜しくお願い致します。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全1件)

  • 回答No.1
レベル7

ベストアンサー率 50% (9/18)

たしかにChr$(151)は「0」を返しますね ただ、この値は制御文字かな?(あまり自信ありません) 自分がASCIIコードの調査用に作成したコーディングを下記に記します イミディエイトウィンドウにて確認できます 着眼点が間違っていたらすみません '~~~~~~~~~~~ Dim Tmp As String Private Sub Command0_Click() ...続きを読む
たしかに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
'~~~~~~~~~~~
お礼コメント
osaosa42

お礼率 30% (7/23)

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

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

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

それでは、また。
投稿日時 - 2001-09-07 13:45:11
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ