• ベストアンサー

8桁文字列を16進数バイト配列に変換

お世話になります。 VB2005を使用しています。 温調器から温度データを引っ張るプログラムを作成しています。 8桁の文字列を16進数バイト配列に変換したいのですが、GetBytesでは10進数バイト配列に変換されてしまいます。 8桁の文字列又は10進数バイト配列を16進数バイト配列に変換する方法はないでしょうか? 文字列を1文字ずつ16進数に変換して配列に組み込んでいくしかないのでしょうか? よろしくお願い致します。

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

その温度計のメーカーには問い合わせしたのでしょうか サンプルとかはないのですか たとえば "GET" といった文字列を送りたい場合 どのように変換したものを送ればいいのかなど "GET" を "474554"といった文字列に変換して送信なのか 『474554』といった文字列が必要なら dim bld as new System.Text.StringBuilder dim ss as string for each _byte as Byte in AryByte   bld.Append( String.Format( "{0:X2}", _byte ) ) next ss = build.ToString SerialPort1.Write( ss, 0, ss.length ) といった具合でよさそうですが メーカのWebページなどにその機器の使い方のサンプルがあるなら 明示してみるといいかもしれませんよ

yurinchi
質問者

お礼

redfoxさん、回答ありがとうございます。 メーカーに確認した所、私の勘違いだった事がわかりました。 8桁文字列を変換する必要は無く、そのまま文字列送信で良かったのです。 文字列送信する事で、データを受け取る事が出来ました。 今後は、もっと良く確認してからご相談させて頂きます。 本当に申し訳御座いませんでした。

その他の回答 (1)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

16進数で表示したいってことですか? 取得した配列の出力を dim ss as String dim bld as new StringBuilder for each _byte as Byte in b   bld.Append( String::Format( "{0,-3:X2}", _byte ) ) next ss = bld.ToString といった具合で 配列bに取得したデータを 文字列ssに16進数として取得できます VBの中で扱う変数に 10進数/16進数の区別はありませんよ

yurinchi
質問者

補足

redfox63さん、回答ありがとうございます。 説明が足りませんでしたので補足します。 シリアル通信で温調器から温度データを引っ張りたいと思っています。 Dim strSend As String Dim AryByte() As Byte = Encoding.ASCII.GetBytes(strSend) SerialPort1.Write(AryByte, 0, AryByte.Length) としたのですが、温調器からの応答がありませんでした。 マニュアルには"送信コードは、16進数に変換しアスキーコード化"と書かれており、 AryByreの中身を確認すると10進数のアスキーコードが格納されていました。 送信コードを16進数のアスキーコードにしたいのです。 宜しくお願い致します。

関連するQ&A

  • 文字列を大文字の2桁ごとのコンマ付き16進数に変換する方法

    文字列を大文字の2桁ごとのコンマ付き16進数に変換する方法がわかりません。ただ単に文字列を16進数に変更するだけならbin2hex()でできますけど、誰か知っている方はいませんか?具体的には、変換された文字列が1a2b3c4d5e6fなら、1A.2B.3C.4D.5E.6Fと変換したいんです。どうすればいいですか?

    • ベストアンサー
    • PHP
  • バイト配列 抜き出す

    はじめまして。 VB6.0 MSCommを使用して,44バイトのデータを受信するプログラムを作成中です。 ここで質問なのですが, 44バイトのデータをバイト配列に格納するまでは良いのですが,必要なデータは(10バイト目~14バイト目)のデータしか必要がありません。この必要な部分だけ切り出せる関数などはありませんか? 宜しくお願いします。

  • VC#で2進数の文字列をバイト列に変換する方法

    No.1021748で質問した者です。前回はバイト列を2進数の文字列に変換する方法を質問しましたが、今回はその逆の方法を教えて下さい。 例えば、stringに01101111という文字列が入ってる場合には、バイト列0x6Fに変換したいです。お願いします。

  • 8桁の2進数を10進数に変換する方法を教えてください。

    キーボードから2進数を入力した値を10進数に変換し、変換結果を出力する方法が解りません。作成するにあたり仕様があり、私一人では解決できないので相談させていただきました。 <仕様は以下の通りです> (1)このプログラム(8桁の2進数を10進数に変換)をする際は、最後に出力する時(printf)以外は関数を使ってはいけません。 (2)キーボードから2進数を入力させる。 (3)空白(ブランク)が入力されても変換可能にする。 (4)入力された2進数は8桁にし、8桁以上の場合はエラーを出す。 (5)2進数の「0」と「1」以外の文字が入力された場合はエラーを出す。 (6)バイナリ変換をし、変換結果を出力する。 以上になります。 まだ、C言語を勉強を習い始めの初心者です。どうか、ご回答のほど宜しくお願いします。

  • エクセル 数値データを桁をそろえて文字列データに変換するには

    よろしくお願いします。 エクセル2002を使用しています。 数値データとして整数1桁、2桁、3桁のデータが混在してあります。 これを1桁、2桁のものは前にゼロを付けて全て3桁の文字列に変換する方法はありますか? できれば関数を使って 例  数値 文字列   8⇒008  12⇒012 235⇒235  11⇒011 できた文字列で品番コードとして使用します。 どなたかご存知の方、ご教授お願いします。

  • 文字列の配列

    文字列の配列 1.1.1.1 2.2.2.2 3.3.3.3 4.4.4.4 のようにIPアドレスが一行に一つづつ書き込まれたテキストがあります。 ここから、それぞれのIPアドレスを文字列として配列に書き込みたいのですが、どうしたらよいのでしょうか。 IPアドレスの数だけ配列を始めに宣言して、それぞれに書き込んでいくのでは手間がかかりすぎてしまいます。 単純に数値の羅列なら scanfを使い、配列に格納できるのですが、文字列になるとどうしたらいいのかわかりません。 よろしくお願いいたします。

  • バイナリ5バイトを文字10バイトに変換

    バイナリ5バイトを文字10バイトに変換 いつもお世話になっています。 C++初心者です。 12 34 56 78 90(バイナリ5バイト)を 1234567890(文字10バイト)に変換する方法はありますか? バイナリで読み込んだデータがあり、特定箇所に、数字10桁が格納されてます。 下記イメージです。 12 34 56 78 90(バイナリ5バイト) それを文字10バイトで処理するしたいのですが、変換方法がネットで探せませんでした。 お知恵をお貸しください。 環境はVC++6 です。 よろしくお願いします。

  • vb2008で文字列から文字列コードを取得する方法

    サイトHTMLをWebBrowserを使用せずに取得するために、 Dim stream As System.IO.Stream = client.OpenRead(tbItemURL.Text) Dim reader As New System.IO.StreamReader(stream) Dim strHtml = reader.ReadToEnd() reader.Close() stream.Close() のような形で文字列を取得しています。 しかし、この場合Sift-jis等の場合、後の作業(一部データ取得)で文字化けに悩まされます。 http://dobon.net/vb/dotnet/string/detectcode.html 上記サイトで「バイト配列」に格納して判別する方法があります。 そこで、文字列をバイト配列に格納しようとしますが…。 文字列→バイト配列には文字コードが必要となります。 Dim data() As Byte = Encoding.UTF8.GetBytes(text) なんだか鶏と卵のような感じになってしまいます。 文字列から文字コードを判別する方法はないでしょうか? よろしくお願いします。

  • 文字列のバイト数を調べる

    文字列の文字数は数えればわかりますが、そのバイト数となると数え方がわかりません。 数える方法を教えてください。 よろしくおねがいします。

  • 文字列のバイト数を取得したい

    処理中に渡ってくる文字列のバイト数を取得したいのですが、 そういった関数はありませんでしょうか? 探しても見つかりませんでした。 文字列はUTF-8かSJISで渡ってきますので、両方に 対応していると嬉しいです。 対応していなければ渡ってくる前に文字コードを 変換します。 どなたかご教示下さい。

    • ベストアンサー
    • PHP

専門家に質問してみよう