新しく発言する  EXIT  インデックスへ

構造体、レコード型でのバイナリファイルへ...


  構造体、レコード型でのバイナリファイルへのアクセス 山中和義 2008/02/29 20:42:14  (修正1回)
  つづき 山中和義 2008/02/29 20:42:55  (修正1回)
   └つづき(構造体、レコード型サポート関連) 山中和義 2008/02/29 20:44:04  (修正2回)
    └つづき(構造体定義部分) 山中和義 2008/02/29 20:46:12  (修正1回)
     └つづき 山中和義 2008/02/29 20:49:03  (修正1回)
      ├ネストする構造体の場合(親子関係) 山中和義 2008/03/03 13:19:43  (修正2回)
Re: つづき  返事を書く  ノートメニュー
山中和義 <drdlxujciw> 2008/03/03 13:19:43 ** この記事は2回修正されてます
ネストする構造体の場合(親子関係)

●構造体0.変数1.変数2. … .変数N . メンバ変数 の参照

VisualBasicの文法で記述すると、

Type 構造体0
  :
 変数1 As 構造体1
  :
End Type
Type 構造体1
  :
 変数2 As 構造体2
  :
End Type

  :
  :

Type 構造体N-1
  :
 変数N As 構造体N
  :
End Type
Type 構造体N
  :
 メンバ変数 As 基本データ型
  :
End Type

Dim 変数 As 構造体0

と定義されている場合である。

参照例は、
 Print 変数.変数1.変数2. … .変数N.メンバ変数
とか
 With 変数.変数1.変数2. … .変数N
  Print .メンバ変数
 End With
となる。



本サポートサブルーチンでは、

!定義部分
LET 変数$=structDim$("構造体0") !Dim 変数 As 構造体0

 :
 :



!位置算出部分
LET ofst1=0 !With 変数.変数1.変数2. … .変数N
CALL StructAdd("構造体0","変数1", ofst1) !親
CALL StructAdd("構造体1","変数2", ofst1)
 :
CALL StructAdd("構造体N-1","変数N", ofst1)

CALL StructDef("構造体N","メンバ変数", ofst2,sz) !.メンバ変数
LET ofst=ofst1 + ofst2 !親からの絶対位置


!参照部分
PRINT CVI(変数$,ofst,sz) !Print 変数.変数1.変数2.….変数N.メンバ変数


とすればよい。
      └SUBStructDefの構造 山中和義 2008/03/04 10:48:06  (修正1回)

 インデックスへ  EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。