私はファイル形式の変換を少し行っており、元の形式をデコードするために手に入れることができたいくつかの Delphi コードを調べています。
これはバイナリ ファイルであり、このファイルから情報を読み書きする機能を持っているので、ほとんどのことは明らかです。しかし、私は何かに困惑しています。
ファイル内には、一連のビットを Array[i] に読み込む行があります。
S.ReadBuffer(Array[i], sizeOf(Array[i]));
今、私はこのスレッドを見ましたが、同じことが Delphi を介して記述されたフォーマットに適用されるかどうかはわかりません (私はそう思いますが?)。Array[i] の実際の sizeof を知るにはどうすればよいですか? 配列内の変数をカウントするだけで 168 ビットになりますが、それらを適切にパディングするにはどうすればよいでしょうか? ストリーム宣言からこの情報を取得する方法はありますか?
そして、このフォーマット全体に関する別の質問は、構造体 (Array[i] に対応する構造体) の部分が宣言された順序で書き込まれるかどうかということだと思います。構造体内の構造体の場合はどうなりますか?
問題がある場合は、Matlab スクリプトを使用してデコードしています (今のところ)。
編集:構造宣言は次のとおりです。
UsegDef = Record
tinc: extended;
cinc: extended;
tA: LongInt;
tB: LongInt;
tC: LongInt;
Arr: Array of seg;
end;
seg = Record
val: smallint;
time: longword;
typ: byte;
end;