掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
COMMXでバイナリ受信 (ID:38272)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
位置がわかっているのなら、各オフセット毎にキャスト等すれば取得できます。 // buf: Pointerに受け取ったデータが入っていて、 // +0にWord、+2にLongword、+6にDouble、+14に文字長(Word)、 // +16以降にchar配列、という並びの場合 var v1: Word; v2: Longword; v3: Double; len: Word; v4: string; begin v1 := PWord(Integer(buf)+0)^; v2 := PLongword(Integer(buf)+2)^; v3 := PDouble(Integer(buf)+6)^; len := PWord(Integer(buf)+14)^; SetLength(v4, len); Move(Pointer(Integer(buf)+16)^, Pointer(v4)^, len); end; また、bufをPByteArrayな変数に代入するか、 もしくはbuf自身がPByteArrayであれば、 v1 := PWord(@buf[0])^; v2 := PLongword(@buf[2])^; このようにも書けます。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.