- 締切済み
アスキー変換 と 逆変換について
(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」とセットしたいのですが、どのようにすれば良いのでしょうか? 初歩的なご質問で申し訳ございません。 よろしくお願いいたします
- nao0
- お礼率10% (50/483)
- Visual Basic
- 回答数1
- ありがとう数0
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
もう少し、きれいな形にしたかったけれども、今のところ、こんな程度です。 Sub Code_Hennkan(ByVal myString As String) Dim myCode As String Dim delim As String Dim txt(1 To 10) As Variant Dim i As Integer, j As Integer For i = 1 To Len(myStr) myCode = myCode & Hex(Asc(Mid(myStr, i, 1))) Next i myCode = myCode & String(40 - Len(myCode), "0") For j = 1 To 40 Step 4 txt((j - 1) / 4 + 1) = Mid(myCode, j, 4) Next j End Sub Sub Mozi_Henkan(ByVal BaseArray As Variant) Dim i As Integer, j As Integer Dim buf1 As String Dim buf2 As String Dim Mozi As String For i = LBound(BaseArray) To UBound(BaseArray) If BaseArray(i) <> "0000" Then buf1 = buf1 & BaseArray(i) 'コードの取り出し End If Next i For j = 1 To Len(buf1) Step 2 buf2 = buf2 & Chr("&h" & Mid(buf1, j, 2)) Next j Mozi = Mid(buf2, 1, Len(buf2) - InStr(buf2, vbNullString)) End Sub
関連するQ&A
- アスキーコードへの変換について VB6(初心者)
変数文字列をアスキーコードの10進数であらわしたいのですが、どのようなプログラムをかけばいいのでしょうか? ネットで調べたのですが、よくわかりません。 たとえば hensuumojiretuという名前の変数文字列を作り、それをアスキーコードに変換するとしたらどのようなプログラムをかいたらよいのでしょうか。 hensuumojiretuは自分で入力する形にしたいです。 それがわかったら変換後のアスキーコードを変数文字列(数字?)として定義したいと思っています。 この本に載ってるとか、このサイトにあるよという情報でもよいのでどうかおしえてくださいおねがいします。
- ベストアンサー
- Visual Basic
- ASCIIとバイナリの相互変換がしたい
アスキーで入力されたバイナリを、ソケットで送信するというものと書きたいのですが・・・。 具体的には、ファイルに 0x414243 と書いてあって、これを ABC という文字列でsocket通信で送りたいのです。 (これで、バイナリレベルでは414243が送れるはず) socketの部分はできているのですが、変換でつまずいています。 まず、配列 @temp を用意して、41 42 43を順にpushしました。で、次にこれをABCに直してソケットの送信関数に渡せばいいのですが、どうやってもABCになってくれません。 pack("C*","0x41","0x42","0x43") とやれば、ABCが出てきますが、 pack("C*",@temp) では当然のようにダメ。 "0x41""0x42""0x43"を順に@tempに入れましたが、これも失敗。 Perlの16進表現はよくわからないのですが、どうしたらいいのでしょうか。
- ベストアンサー
- Perl
- 16進数の文字列をアスキーコード表を使用して変換
16進数の文字列をアスキーコード表を使用して変換したいと思っています。 例えば 97 98 = ab 99 100 101 = cde 何か良い関数はありますか? また、文字列長も任意で変わるので、文字列長に応じて任意で 変換したいと思っています。 やはりマクロが必要ですか?
- 締切済み
- オフィス系ソフト
- VBA ファイル名の変更方法
nameというファイル名を、testという「String型変数」が保持している文字列に変更させたいと思っています。 こういう場合には、どのような記載すればよいのでしょうか? (As以降の書き方がわかりません) Dim test as String Name ("C:\name.txt") As ("C\「test変数が保持している文字列」.txt")
- 締切済み
- Visual Basic
- 配列
String型の配列の中の文字列の文字数を数える方法で困っています。 問題は、int型の変数lenで与えられた数字よりも大きい文字数の文字列はいくつあるか調べます。 例) stringsLongerThan({"a","ab","abc"}, 0) 3つ全ての文字列の文字数は0より大きいので3を返す stringsLongerThan({"a","ab","abc"}, 2) "abc"の文字数が2より大きいので1を返す stringsLongerThan({"a","ab","abc","abcd","abcde","abcdef","abcdefg"}, 3) "abcd","abcde","abcdef","abcdefg"の4つが文字数3より大きいので4を返す 途中まで組んだのですが、配列array[]の中の文字列の文字数を数えるにはどうしたらよいのでしょうか? public int stringsLongerthan(String[] array, int len){ int result=0; for(int i=0;i<array.length;i++){ //ここで配列array[i]の文字列の文字数を数える int count=文字数; if(cont>len) result++; } return result; } 宜しくお願いします。
- ベストアンサー
- Java
- VBA Functionプロシージャで複数の値を
エクセルでVBAのFunctionプロシージャについて複数の値を戻り値として 受け取る方法を考えています。 下記のようなサンプルプログラムを作りました。 --------------------------------------------------------------------------------- Option Explicit Private Sub CommandButton1_Click() Dim kekka(3) As Double Dim txt As String txt = "12.12A,34.34B,56.56C,78.78D" kekka(0) = test(txt) End Sub Public Function test(ByVal text As String) As Double Dim txt_kakou(3) As String '## 渡された「txt = "12.12A,34.34B,56.56C,78.78D"」を加工し、数値のみを取り出し '## 下記のように配列txt_kakou(3)に振り分ける '## 加工方法は割愛 txt_kakou(0) = 12.12 txt_kakou(1) = 34.34 txt_kakou(2) = 56.56 txt_kakou(3) = 78.78 'string型からdouble型に変換する。 txt_kakou(0) = CDbl(txt_kakou(0)) txt_kakou(1) = CDbl(txt_kakou(1)) txt_kakou(2) = CDbl(txt_kakou(2)) txt_kakou(3) = CDbl(txt_kakou(3)) test = txt_kakou() End Function ----------------------------------------------------------------------------------- まず、呼び出し側のプロシージャでkekka(3)という配列を宣言します。 次に変数txtに「"12.12A,34.34B,56.56C,78.78D"」の文字列を代入します。 そして変数txtをFunctionプロシージャに投げます。 Functionプロシージャでは、受け取った「"12.12A,34.34B,56.56C,78.78D"」 を数値のみに分解し、4つの変数に代入します。 この4つの変数も配列で用意し、txt_kakou(3)とします。 このtxt_kakou(3)を呼び出し元に返し、呼び出しもとの変数kekka(3)に入れたいのです。 また、はじめ変数txtに代入される値は文字列ですが、この文字列をFunctionプロシージャで分解し、 分解した値は、最終的には数値として扱いたいので、途中でdouble型に変換しています。 これを実行すると、Functionプロシージャの最後のtest = txt_kakou()で、型が一致しません といわれてしまいます。 どのように書き直せばいいのでしょうか。 よろしくお願いします。
- ベストアンサー
- Visual Basic
- アスキーコードの文字をデコードする方法
こんにちは。 Windows環境です。 ある変数に0-9,a-zのアスキーコードの数字が格納されています。 それを元の数字や文字列にデコードしたいと思うのですが どのようにすればよろしいのでしょうか? どなたかご存知の方、よろしくお願いします。
- ベストアンサー
- C・C++・C#
- VB6で配列を文字列に変換する方法?
VisualBasic6を使っております。 Dim ary() As Byte Dim s as String 配列を文字列に変換したり、文字列を配列にしたいのですが どのようにすれば良いのでしょうか?
- ベストアンサー
- Visual Basic