掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Record型のフィールド数を求めるには? (ID:42124)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
バージョン管理をすると言う事はプログラマーはデータ構造は 知っていると言う事です、通常はそうだと思います。 Record型の変数のフィールド数だけ分かってもデータの種類の分からないと 意味が無いと思います。 下記はイメージです、実際に動作させていませんので注意を して下さい。。 例えばバージョン1ではADataのタイプがTADataでバージョン2 ではTBDataなら読み込みのサイズをバージョンに合わせて変える だけです。 type TAData = Record X:Integer; Y:Integer; end; TBData = Record X:Integer; Y:Integer; Z:Integer; St1:string[8]; end; var varNo:integer; //AData:array of TAData; //ver1 AData:array of TBData; //ver2 .. procedure Read_Data; var F:TFileStream; i:integer; Ini:TIniFile; IniFilename:string; Path1:String; count:integer; begin Path1:=ExtractFilePath(Application.ExeName); Filename:=ExtractFilePath(Application.ExeName)+'\test01.dat'; if fileExists(Filename) then begin F:=TfileStream.Create(Filename,fmOpenRead); try F.Read(verNo,sizeof(verNo)); F.Read(Count,sizeof(Count)); Setlength(AData,Count +1) i:=1; while i <= Count do begin if verNo=1 then F.Read(AData[i],sizeof(TAData)) else F.Read(AData[i],sizeof(TBData)); inc(i); end; finally F.Free; end; end end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.