電子書籍の厳選無料作品が豊富!

はじめまして。

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

A 回答 (4件)

ANo.2です。



書き方が悪かったみたいですみません。
d = MidB(d, 10, 5)
だけが言いたかった事です。

>44バイトのデータを1バイトずつ配列に入れているのですか?
そうです、質問で
>44バイトのデータをバイト配列に格納するまでは良いのですが
とあったので、前半部分はサンプルデータを作っています。
後半部分は結果表示です。

>10バイト目から5バイト分 d配列に入れてますか?
そうです。
別のバイト配列を用意すれば良かったのですが、こんな風にできるというサンプルなので。

p.s.
実際にはvbaで覚えた方法なんですが、いったん文字列変数に代入すると、前から取り出して後に追加するとかの処理が楽です。
ただし、midbでなくmidの場合など、文字コードが関係する文字列操作関数を使うとおかしくなる場合がありますので、気を付けてください。
    • good
    • 0

先の天秤の件ですよね。


そうだったら、
Split関数を
調べてみて。
    • good
    • 1

こんなのはどうでしょう。


正しい使い方かどうかは別ですが・・・
Private Sub Command1_Click()
Dim d() As Byte
Dim i As Integer

ReDim d(43)
For i = 0 To 43
d(i) = i + 1
Next

d = MidB(d, 10, 5)

For i = 0 To 4
MsgBox d(i)
Next
End Sub

この回答への補足

ReDim d(43)
For i = 0 To 43
d(i) = i + 1
Next
に関してですが
44バイトのデータを1バイトずつ配列に入れているのですか?

d = MidB(d, 10, 5)
10バイト目から5バイト分 d配列に入れてますか?

For i = 0 To 4
MsgBox d(i)
5バイトの配列の1バイトずつ切り出しているのですか?

何度も質問して申し訳ありません。
時間がありましたら回答宜しくお願いします。

補足日時:2008/01/30 17:50
    • good
    • 0

「バイト配列の途中から切り出した新しい配列を作りたい」と言うことなら、


そういう関数は準備されていません。

ループ処理で、1バイトずつコピーしてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!