掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
MSCoommを使ってデータを受信するには? (ID:117243)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
バイナリデータで受信するなら、 InputModeをcomInputModeBinaryにして、 Dim bytArray() as Byte ・ ・ ・ bytArray = MSComm1.Input にしましょう。 そしてとりあえず作ってみたbatchman作の関数にデータを渡してみる。 Text2.Text = ByteArrayToHexDumpString(bytArray) これで、バイナリデータをHexダンプ文字列で確認できるかな... 取り合えず作ってみたものなので、不具合あったら自分で直して下さい。 #このままでは受信するたびに、TextBoxの内容が書き換えられてしまうので、 #受信した内容をスクロールするならMSDNヘルプでTextBoxの #SelLength、SelStart、SelText プロパティの使用例などを参考にしてみて下さい。 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' ' ' Byte型配列のデータからHexダンプ文字列を作成する ' ' ' ' 第1引数 Binaryデータ Byte型配列 ' ' ' ' 戻り値 String Hexダンプ文字列 ' ' ' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Public Function ByteArrayToHexDumpString(bytArray() As Byte) As String Dim i As Long Dim Max As Long Dim Min As Long Dim lngSize As Long Dim strBuff As String '最初に決められたバッファを用意して、高速化する。 Max = UBound(bytArray) Min = LBound(bytArray) lngSize = Max + 1 - Min 'バッファサイズ計算 i = lngSize * 3 + Fix((lngSize + 15) / 16) - 2 'HEXダンプに必要なバッファサイズを計算 strBuff = Space$(i) 'あらかじめ必要なバッファを確保 For lngSize = 48 To i Step 49 Mid$(strBuff, lngSize, 2) = vbCrLf '所定の位置に改行コードをセット Next '1バイトずつHEXコードを確保されたバッファの所定の位置にセットする。 For i = Min To Max lngSize = (i - Min) * 3 + Fix((i - Min) / 16) + 1 '書き込み位置を計算 Mid$(strBuff, lngSize, 2) = Right$("0" & Hex$(bytArray(i)), 2) '所定の位置にHEXコードをセット Next ByteArrayToHexDumpString = strBuff End Function
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.