• 締切済み

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

(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)

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

もう少し、きれいな形にしたかったけれども、今のところ、こんな程度です。 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は自分で入力する形にしたいです。 それがわかったら変換後のアスキーコードを変数文字列(数字?)として定義したいと思っています。 この本に載ってるとか、このサイトにあるよという情報でもよいのでどうかおしえてくださいおねがいします。

  • char型からアスキーコードへの変換

    Javaでchar型配列に入っている文字をアスキーコードに変換する方法をご教授ください。

    • ベストアンサー
    • Java
  • java 問題

    public static void main(String[] args) { 1 文字列型変数 word をせんげんする String word = "abc"; 2  // 文字列型の変数が入る配列 words を宣言する   // 同時に、word から substring で取り出した文字をセットする Java初心者です。 2番が分かりません。どなたか解説していただけると助かります。

    • ベストアンサー
    • Java
  • 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")

  • 配列

    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()で、型が一致しません といわれてしまいます。 どのように書き直せばいいのでしょうか。 よろしくお願いします。

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

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

  • VB6で配列を文字列に変換する方法?

    VisualBasic6を使っております。 Dim ary() As Byte Dim s as String 配列を文字列に変換したり、文字列を配列にしたいのですが どのようにすれば良いのでしょうか?

専門家に質問してみよう