[リストへもどる]
一括表示

投稿時間:2003/02/18(Tue) 15:15
投稿者名:まな
Eメール:
URL :
タイトル:
Asc関数について
Asc関数について質問です。
例えば、
Dim ans(1 to 5) as Byte
Dim ans2        as Variant
ans(1) = Asc("A")
ans(2) = Asc("B")
ans(3) = Asc("5")
ans(4) = Asc("2")
ans(5) = Asc("E")
ans2 = ans
MSComm5.Output = ans2

というのを、連続した文字列"AB52E"を入力して上記と同じ形式で転送したいのですが、
やり方を教えてください。宜しくお願いします。

投稿時間:2003/02/18(Tue) 15:48
投稿者名:よねKEN
Eメール:
URL :http://www5b.biglobe.ne.jp/~yone-ken/
タイトル:
Re: Asc関数について
Dim s As String

s = "AB52E"
For i = 1 To 5
   ans(i) = Asc(Mid(s,i,1))
Next
のようにMid関数とループで処理できます。

投稿時間:2003/02/18(Tue) 15:59
投稿者名:まな
Eメール:
URL :
タイトル:
Re^2: Asc関数について
ありがとうございます。下のソースを実行してみたのですが、稀に、For文で
行うと、後ろにゴミ結果?が付いてしまいます。これを無くすには、どう
処理すればよろしいのでしょうか?

Private Sub Command1_Click()

Dim ans(1 To 7) As Byte
Dim ans2 As Variant


ans(1) = Asc("1")
ans(2) = Asc("1")
ans(3) = Asc("A")
ans(4) = Asc("B")
ans(5) = Asc("C")

ans2 = ans

Text1.Text = ans2

End Sub

Private Sub Command2_Click()
Dim ans(1 To 5) As Byte
Dim ans2 As Variant
Dim s As String

s = "11ABC"
For i = 1 To 5
   ans(i) = Asc(Mid(s, i, 1))
Next

ans2 = ans

Text2.Text = ans2

End Sub

投稿時間:2003/02/18(Tue) 20:19
投稿者名:よねKEN
Eメール:
URL :http://www5b.biglobe.ne.jp/~yone-ken/
タイトル:
Re^3: Asc関数について
> Dim ans(1 To 7) As Byte

Dim ans(1 To 5) As Byte
にすればいいかと。
データが1〜5までなのに配列には残り6と7とがありますので、
その分のデータ0と0がゴミとして表示されています。

事前にバイト数がわからない場合は動的配列を使いましょう。キーワードはRedim。

後、今回のようにVBの文字列からSJIS(ASCII)のバイトデータに変換したいだけなら、
Dim ans() As Byte
ans = StrConv("11ABC", vbFromUnicode)
でいいですよ。

投稿時間:2003/02/19(Wed) 20:19
投稿者名:まな
Eメール:
URL :
タイトル:
ありがとうございました♪
ありがとうございました。また、宜しくお願いしますっ♪