- ベストアンサー
8桁文字列を16進数バイト配列に変換
お世話になります。 VB2005を使用しています。 温調器から温度データを引っ張るプログラムを作成しています。 8桁の文字列を16進数バイト配列に変換したいのですが、GetBytesでは10進数バイト配列に変換されてしまいます。 8桁の文字列又は10進数バイト配列を16進数バイト配列に変換する方法はないでしょうか? 文字列を1文字ずつ16進数に変換して配列に組み込んでいくしかないのでしょうか? よろしくお願い致します。
- yurinchi
- お礼率39% (24/61)
- Visual Basic
- 回答数2
- ありがとう数3
- みんなの回答 (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ページなどにその機器の使い方のサンプルがあるなら 明示してみるといいかもしれませんよ
その他の回答 (1)
- redfox63
- ベストアンサー率71% (1325/1856)
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進数の区別はありませんよ
補足
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バイト目)のデータしか必要がありません。この必要な部分だけ切り出せる関数などはありませんか? 宜しくお願いします。
- ベストアンサー
- Visual Basic
- 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言語を勉強を習い始めの初心者です。どうか、ご回答のほど宜しくお願いします。
- 締切済み
- C・C++・C#
- エクセル 数値データを桁をそろえて文字列データに変換するには
よろしくお願いします。 エクセル2002を使用しています。 数値データとして整数1桁、2桁、3桁のデータが混在してあります。 これを1桁、2桁のものは前にゼロを付けて全て3桁の文字列に変換する方法はありますか? できれば関数を使って 例 数値 文字列 8⇒008 12⇒012 235⇒235 11⇒011 できた文字列で品番コードとして使用します。 どなたかご存知の方、ご教授お願いします。
- ベストアンサー
- オフィス系ソフト
- バイナリ5バイトを文字10バイトに変換
バイナリ5バイトを文字10バイトに変換 いつもお世話になっています。 C++初心者です。 12 34 56 78 90(バイナリ5バイト)を 1234567890(文字10バイト)に変換する方法はありますか? バイナリで読み込んだデータがあり、特定箇所に、数字10桁が格納されてます。 下記イメージです。 12 34 56 78 90(バイナリ5バイト) それを文字10バイトで処理するしたいのですが、変換方法がネットで探せませんでした。 お知恵をお貸しください。 環境はVC++6 です。 よろしくお願いします。
- ベストアンサー
- C・C++・C#
- 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) なんだか鶏と卵のような感じになってしまいます。 文字列から文字コードを判別する方法はないでしょうか? よろしくお願いします。
- ベストアンサー
- Visual Basic
- 文字列のバイト数を調べる
文字列の文字数は数えればわかりますが、そのバイト数となると数え方がわかりません。 数える方法を教えてください。 よろしくおねがいします。
- ベストアンサー
- その他(データベース)
- 文字列のバイト数を取得したい
処理中に渡ってくる文字列のバイト数を取得したいのですが、 そういった関数はありませんでしょうか? 探しても見つかりませんでした。 文字列はUTF-8かSJISで渡ってきますので、両方に 対応していると嬉しいです。 対応していなければ渡ってくる前に文字コードを 変換します。 どなたかご教示下さい。
- ベストアンサー
- PHP
お礼
redfoxさん、回答ありがとうございます。 メーカーに確認した所、私の勘違いだった事がわかりました。 8桁文字列を変換する必要は無く、そのまま文字列送信で良かったのです。 文字列送信する事で、データを受け取る事が出来ました。 今後は、もっと良く確認してからご相談させて頂きます。 本当に申し訳御座いませんでした。