掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
動的配列をグローバルに参照するには? (ID:9055)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
古いVBソースの移植を目指しているDelphi初心者です。 バイナリーファイルからレコードを読み込み、動的配列に入れて複数のユニットから参照したいのですが、うまくいきません。 ①interface部で静的配列を宣言すれば正常に動きますが、レコード数が可変なので使えません。 ②動的配列に変えて実行部でSetLengthすると、コンパイルはできますが実行時エラーで叱られました。 ③varとSetLengthを両方実行部に置くと、他のユニットで未定義変数だとまた叱られました。 AllocMem方式に変えて何とか凌いではみたものの、どうも釈然としません。 つまらない勘違いをしている気がします。どなたかご教示くださいませんでしょうか? コードの一部を記載します。 unit Unit1; interface type TIconRec = packed record Num: SmallInt; Name1: array[0..63] of Char; Name2: array[0..15] of Char; Icon: array [0..7] of SmallInt; end; var IconRec = array[0..999] of TIconRec; //①静的配列の場合 //IconRec = array of TIconRec; //②動的配列で implementation uses Unit2; {$R *.dfm} procedure IconRead; var i: integer; //IconRec = array of TIconRec; //③動的配列で begin AssignFile(F, FName); Reset(F); Seek(F, 128); //SetLength(IconRec, n); //②③で for i:= 0 to n-1 do //nはレコード数 BlockRead(F, IconRec[i], 98); CloseFile(F); end; end.
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.