tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルアスキーを10進表示するには?
記事No14706
投稿日: 2010/05/26(Wed) 20:42
投稿者くずちゅう
受信するデータがアスキーなのですが、10進表示にするにはどうすればいいでしょうか?

dim data as String
data=Chr(bRcvData(1))
にすると 『A』になるのですが
これをどうすれば10進にできますか?

[ツリー表示へ]
タイトルRe: アスキーを10進表示するには?
記事No14707
投稿日: 2010/05/26(Wed) 21:00
投稿者よねKEN
> 受信するデータがアスキーなのですが、10進表示にするにはどうすればいいでしょうか?

受信しているデータは文字と解釈できる数値データ(=アスキー)ですよね。
Chr関数はそのAsciiコードから文字に変換する関数です。

bRcvData(1)はByte配列でしょうからChr関数で処理せずにそのまま表示すればよいですよ。
そのままの数値データのイメージで文字列変数に入れるならCStr関数ですね。

[ツリー表示へ]
タイトルRe^2: アスキーを10進表示するには?
記事No14708
投稿日: 2010/05/26(Wed) 21:09
投稿者くずちゅう
処理せずにそのまま表示させると、
bRcvData(1)は『65』になってしまいます。

[ツリー表示へ]
タイトルRe^3: アスキーを10進表示するには?
記事No14709
投稿日: 2010/05/26(Wed) 21:37
投稿者魔界の仮面弁士
> bRcvData(1)は『65』になってしまいます。

"A" の ASCII コードは 65 なので、10進数 65 であっていますよ。

"0"〜"9" なら 48〜57、
"A"〜"Z" なら 65〜90、
"a"〜"z" なら 97〜122 です。

それとも、"0"〜"9","A"〜"F" の文字を16進数とみなして、
10進数の 0〜9,10〜15 にしたいということでしょうか?

[ツリー表示へ]
タイトルRe^4: アスキーを10進表示するには?
記事No14723
投稿日: 2010/05/28(Fri) 19:39
投稿者くずちゅう
> それとも、"0"〜"9","A"〜"F" の文字を16進数とみなして、
> 10進数の 0〜9,10〜15 にしたいということでしょうか?

その通りです。

[ツリー表示へ]
タイトルRe^5: アスキーを10進表示するには?
記事No14724
投稿日: 2010/05/28(Fri) 20:01
投稿者魔界の仮面弁士
> > それとも、"0"〜"9","A"〜"F" の文字を16進数とみなして、
> > 10進数の 0〜9,10〜15 にしたいということでしょうか?
> その通りです。
最初の質問時に、そう書いておかないと通じませんよ。(^^;

"A" を 10 に変換したいなら、CLng("&HA") で 10 になります。
つまり、得られた文字の先頭に "&H" の文字を繋げてから、
それを数値化すれば OK です。


もしくは、既に
>> "0"〜"9" なら 48〜57、
>> "A"〜"Z" なら 65〜90、
である事が分かっているのですから、中身が "0"〜"9","A"〜"F" なら
 Select Case bRcvData(1)
 Case Asc("0") To Asc("9")    '48 To 57
  data = bRcvData(1) - Asc("0")
 Case Asc("A") To Asc("Z")    '65 To 70
  data = bRcvData(1) - Asc("A") + 10
 End Select
のように処理するという手も一応あります。



あるいは、その得られた "A" や "F" などに対して、
 S = Chr(bRcvData(1))
 data = InStr("0123456789ABCDEF", S) - 1
という手もあります。この場合、S が "A" の場合、data は 10 になります。

[ツリー表示へ]
タイトルRe^6: アスキーを10進表示するには?
記事No14725
投稿日: 2010/05/30(Sun) 19:08
投稿者くずちゅう
ありがとうございます。
解決しました!!

[ツリー表示へ]