dポイントプレゼントキャンペーン実施中!

変数文字列をアスキーコードの10進数であらわしたいのですが、どのようなプログラムをかけばいいのでしょうか?
ネットで調べたのですが、よくわかりません。

たとえば
hensuumojiretuという名前の変数文字列を作り、それをアスキーコードに変換するとしたらどのようなプログラムをかいたらよいのでしょうか。

hensuumojiretuは自分で入力する形にしたいです。
それがわかったら変換後のアスキーコードを変数文字列(数字?)として定義したいと思っています。

この本に載ってるとか、このサイトにあるよという情報でもよいのでどうかおしえてくださいおねがいします。

A 回答 (4件)

とりあえず、文字列→アスキーのサンプルを作ってみました。


フォームにCommand1,Text1,Label1を貼り付けてください
Private Sub Command1_Click()
Dim ln As Integer
Dim i As Integer
Dim strMoji As String

Label1.Caption = ""

strMoji = Text1.Text
ln = Len(strMoji)

For i = 1 To ln
Label1.Caption = Label1.Caption _
& Asc(Mid(strMoji, i, 1)) & vbCrLf
Next i
End Sub
    • good
    • 0
この回答へのお礼

わざわざ実際にプログラムをかいてくれてありがとうございます。

貼り付けて変数名を変えても動作しました。

またラベルをテキストに変えてやってみたのですが動作しました。

もう一つ質問なのですが、変換後の数字と数字の間の・・はどのプログラムでだしているのでしょうか?

どうか教えてください、おねがいします。

お礼日時:2004/11/24 15:25

#2です。



VbCrLf は改行コードです。

文字列にWindowsの改行コード CR + LF を足しています。

先の例のプログラムでMsgBoxを使った場合は例えば ABC といれた場合

A:32
B:33
C:34

と表示されます。 この VbCrLf を外した場合

A:32B:33:C:34

と表示されます(改行されないのでつながって出るということです)。

続けて出したいなら VbCrLfは必要ありません。見やすくするなら空白か何かを入れればいいでしょう。

先の例:
strPrint = strPrint & strBuf & ":" & cStr(Asc(StrBuf)) & vbCrLf



strPrint = strPrint & strBuf & ":" & cStr(Asc(StrBuf)) & " "

とすれば

A:32 B:33 C:34

と表示されたはすです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
momoturboさんへの質問と同じ内容の質問をしていたようです。

& " " & も使うことができました。

わかりやすい説明ありがとうございました。
おかげでプログラムが完成しました。

お礼日時:2004/11/25 15:22

>もう一つ質問なのですが、変換後の数字と数字の間の・・はどのプログラムでだしているのでしょうか?



Label1ではなくTextに結果を表示した場合の話ですよね?

TextBoxはデフォルトで改行表示しません。
よって、vbCrLfを認識できないので、・・になります。
改行表示したい場合はmultilineというプロパティが
あるのでTrueにしてください。
サンプルでvbCrLfを使用したのは一文字ずつ表示
したほうが見やすいと思った為で、深い意味はありません。


改行の話
たとえば
-----------------
abc(改行)
d
-----------------
という内容をアスキーで表示すると
&h41 &h42 &h43 &h0d &h0a &h44
になります。(&hは16進数を表します)

ウィンドウズはCR,LF(&h0d &h0a)があると改行とみなします。
UNIX系はLF(&h0a)マックはCR(&h0d)で改行とみなします。
    • good
    • 0
この回答へのお礼

>Label1ではなくTextに結果を表示した場合の話ですよね?

捕捉ありがとうございます。
その通りです。
multilineをtrueにしたら横幅にあわせて改行しました。

vbcrlfを使っても見やすく表示できるということもわかりました。

くわしい説明ありがとうございました。

お礼日時:2004/11/25 15:18

とりあえず入力された文字列はtext1.txtにあると仮定して



Dim strInput as String
Dim lngLen as Long
Dim i as Long
Dim strPrint as String
dim strBuf as String

strInput = text1.txt
lngLen = len(strInput)

For i = 1 to lngLen
strBuf = Mid$(strInput,i,1)
strPrint = strPrint & strBuf & ":" & cStr(Asc(StrBuf)) & vbCrLf
next

MsgBox strPrint

とりあえずこれでメッセージボックスに入力された文字を一文字ずつアスキーコードにして表示します。

ちなみに Asc(文字) がアスキーコードをしらべるステートメントです。

入力された文字列から一文字ずつとって(Mid$)、Ascでアスキーコードを調べてます。

あとはご自分で実際に使いたいように編集してみてください。
    • good
    • 0
この回答へのお礼

くわしい説明ありがとうございます。
Mid$で1文字ずつとって1文字ずつAscで変換しているのですね。

& vbCrlf は何を表しているのでしょうか?
調べてみたところ、vbCrlfは改行を表しているということですがよくわかりません。

どうか教えてください、おねがいします。

お礼日時:2004/11/24 15:28

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

このQ&Aを見た人はこんなQ&Aも見ています