- ベストアンサー
バイト配列 抜き出す
はじめまして。 VB6.0 MSCommを使用して,44バイトのデータを受信するプログラムを作成中です。 ここで質問なのですが, 44バイトのデータをバイト配列に格納するまでは良いのですが,必要なデータは(10バイト目~14バイト目)のデータしか必要がありません。この必要な部分だけ切り出せる関数などはありませんか? 宜しくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ANo.2です。 書き方が悪かったみたいですみません。 d = MidB(d, 10, 5) だけが言いたかった事です。 >44バイトのデータを1バイトずつ配列に入れているのですか? そうです、質問で >44バイトのデータをバイト配列に格納するまでは良いのですが とあったので、前半部分はサンプルデータを作っています。 後半部分は結果表示です。 >10バイト目から5バイト分 d配列に入れてますか? そうです。 別のバイト配列を用意すれば良かったのですが、こんな風にできるというサンプルなので。 p.s. 実際にはvbaで覚えた方法なんですが、いったん文字列変数に代入すると、前から取り出して後に追加するとかの処理が楽です。 ただし、midbでなくmidの場合など、文字コードが関係する文字列操作関数を使うとおかしくなる場合がありますので、気を付けてください。
その他の回答 (3)
- otto0001otto
- ベストアンサー率25% (64/249)
先の天秤の件ですよね。 そうだったら、 Split関数を 調べてみて。
- fumufumu_2006
- ベストアンサー率66% (163/245)
こんなのはどうでしょう。 正しい使い方かどうかは別ですが・・・ 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
- dsuekichi
- ベストアンサー率64% (171/265)
「バイト配列の途中から切り出した新しい配列を作りたい」と言うことなら、 そういう関数は準備されていません。 ループ処理で、1バイトずつコピーしてください。
補足
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バイトずつ切り出しているのですか? 何度も質問して申し訳ありません。 時間がありましたら回答宜しくお願いします。