• ベストアンサー

アスキーコードへの変換について VB6(初心者)

変数文字列をアスキーコードの10進数であらわしたいのですが、どのようなプログラムをかけばいいのでしょうか? ネットで調べたのですが、よくわかりません。 たとえば hensuumojiretuという名前の変数文字列を作り、それをアスキーコードに変換するとしたらどのようなプログラムをかいたらよいのでしょうか。 hensuumojiretuは自分で入力する形にしたいです。 それがわかったら変換後のアスキーコードを変数文字列(数字?)として定義したいと思っています。 この本に載ってるとか、このサイトにあるよという情報でもよいのでどうかおしえてくださいおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • momoturbo
  • ベストアンサー率55% (49/88)
回答No.1

とりあえず、文字列→アスキーのサンプルを作ってみました。 フォームに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

gosutero
質問者

お礼

わざわざ実際にプログラムをかいてくれてありがとうございます。 貼り付けて変数名を変えても動作しました。 またラベルをテキストに変えてやってみたのですが動作しました。 もう一つ質問なのですが、変換後の数字と数字の間の・・はどのプログラムでだしているのでしょうか? どうか教えてください、おねがいします。

その他の回答 (3)

  • takasebou
  • ベストアンサー率42% (61/144)
回答No.4

#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 と表示されたはすです。

gosutero
質問者

お礼

回答ありがとうございます。 momoturboさんへの質問と同じ内容の質問をしていたようです。 & " " & も使うことができました。 わかりやすい説明ありがとうございました。 おかげでプログラムが完成しました。

  • momoturbo
  • ベストアンサー率55% (49/88)
回答No.3

>もう一つ質問なのですが、変換後の数字と数字の間の・・はどのプログラムでだしているのでしょうか? 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)で改行とみなします。

gosutero
質問者

お礼

>Label1ではなくTextに結果を表示した場合の話ですよね? 捕捉ありがとうございます。 その通りです。 multilineをtrueにしたら横幅にあわせて改行しました。 vbcrlfを使っても見やすく表示できるということもわかりました。 くわしい説明ありがとうございました。

  • takasebou
  • ベストアンサー率42% (61/144)
回答No.2

とりあえず入力された文字列は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でアスキーコードを調べてます。 あとはご自分で実際に使いたいように編集してみてください。

gosutero
質問者

お礼

くわしい説明ありがとうございます。 Mid$で1文字ずつとって1文字ずつAscで変換しているのですね。 & vbCrlf は何を表しているのでしょうか? 調べてみたところ、vbCrlfは改行を表しているということですがよくわかりません。 どうか教えてください、おねがいします。

関連するQ&A

  • アスキーコードから数字に変換

    アスキーコードで送られてきた4つのデータを数字に変換する方法を教えてください。 4つのデータはいっぺんに送られてくるのでアスキーコード文字数は16です。(ひとつのデータは4文字です) よろしくお願いします。

  • ASCIIコードへの変換方法

    ポインタに文字列を格納し char *a="a"; char *b="ace"; このポインタの中身をASCIIコードで表示させるプログラム ポインタaの中身aはASCIIコード8進数で001です。 ポインタbの中身aceはASCIIコード8進数で001003005です。 という感じのプログラムを作りたいのですが ASCIIへの変換方法がわからなく困っています。 もしよろしかったら具体例等のプログラムのご教授願います。

  • ASCIIコードへの変換方法

    前の質問と似たような質問ですが困っております。 ポインタに文字列を格納し char *a="a"; char *b="ace"; このポインタの中身をASCIIコードで表示させるプログラム ポインタaの中身aはASCIIコード2進数で********です。 ポインタbの中身aceはASCIIコード2進数で************************です。 という感じのプログラムを作りたいのですが、8進数表示はここで教えてもらい理解できましたが2進数への変換方法がわからりません。 もしよろしかったら具体例等のプログラムのご教授願います。

  • ASCIIコードに変換するには?

    ポケベルのコードをASCIIコードに変換するプログラムがどうしても書けません。。教えてください。 せめてアルゴリズムだけでもお願いします。

  • アスキーコードの文字をデコードする方法

    こんにちは。 Windows環境です。 ある変数に0-9,a-zのアスキーコードの数字が格納されています。 それを元の数字や文字列にデコードしたいと思うのですが どのようにすればよろしいのでしょうか? どなたかご存知の方、よろしくお願いします。

  • 2進数からアスキーコードへの変換についって

    趣味で電子工作を行っているものです。 picマイコンを使用して、A/D変換の結果10bitのデータを得ました。 8ビットのマイコンなので2つのレジスタに分かれてデータが格納されています。(上位2ビットと下位8ビット) この2進数のデータを10進数に変換し、一桁ごとにアスキーコードにして、シリアル通信を用いてPCに送りたいと思っています。 ここで、10bitのデータの2進数から10進数への変換。 10進数のデータを一桁ずつアスキーコードへ変換。 の2つのやり方がわかりません。 2進数のデータのままPCに送り、PCのソフト側で変換するほうが簡単なのですが、今回はPIC側で変換し、アスキーコードで送る必要があります。 プログラムに使用する言語はアセンブリです。 どなたか分かる方がいましたら教えてください。

  • 16進をASCIIコードに変換する手法

    16進をASCIIコードに変換する手法を教えて下さい。 *例 もしchar型変数aに0x0aが入っていたら0x41(大文字にしたい) aの値が1~fどれがきても対応できるようにしたいのですが・・・ if文とかswitchを多用しなくても簡潔に記述できますか?

  • 16進数の文字列をアスキーコード表を使用して変換

    16進数の文字列をアスキーコード表を使用して変換したいと思っています。 例えば 97 98 = ab 99 100 101 = cde 何か良い関数はありますか? また、文字列長も任意で変わるので、文字列長に応じて任意で 変換したいと思っています。 やはりマクロが必要ですか?

  • アスキー変換 と 逆変換について

    (1)文字列 2-ABC1234(9文字)をアスキーコード化し 変数配列txt(1 to 10)に txt(1)=322D「2-」,txt(2)=4142「AB」, txt(3)=4331「C1」,txt(4)=3233「23」, txt(5)=3400「4」,txt(6)=0000「」, txt(7)=0000「」,txt(8)=0000「」, txt(9)=0000「」,txt(10)=0000「」 とセットしたいのですが、どのようにすれば良いのでしょうか? (2)(1)の逆変換で変数txt(1 to 10)を 変数mozi as string に「2-ABC1234」とセットしたいのですが、どのようにすれば良いのでしょうか? 初歩的なご質問で申し訳ございません。 よろしくお願いいたします

  • 文字コード

    ある変数$aaaに文字列が入ってくるのですが $code = getcode( $aaa ); で文字コードを調べると、asciiと返ってきます。 文字コードをeucに変換したいので Jcode::convert(\$aaa,'euc'); としても文字コードはasciiのままです。 どのようにしたら eucに変換できるのでしょうか?

    • ベストアンサー
    • Perl