E2155 '%s' 型は終了処理が必要です - ファイル型として使用することはできません (Delphi)

提供: RAD Studio
移動先: 案内検索

エラーと警告のメッセージ(Delphi) への移動

現在所有しているリソースを解放して正しい終了処理をしなければならないという内部的な理由から,いくつかの特定の型はコンパイラによって特別に扱われます。レコードの可変部に実行時に何が格納されるかはコンパイラには決定できないため,このような特別な型に対する終了処理が正しく行われることを保証することができなくなります。


program Produce;

  type
    Data = record
      name : string;
    end;

  var
    inFile : file of Data;

begin
end.

{ 文字列は終了処理を必要とするデータ型の 1 つなので,file 型には格納できない }


program Solve;

  type
    Data = record
      name : array [1..25] of Char;
    end;

  var
    inFile : file of Data;

begin
end.

{ String の場合には型を文字の配列として再宣言するのが簡単な解決方法である。終了処理を必要とするそれ以外の型では,file of などの標準 Pascal 機能を使ったバイナリファイル構造の保守は一層難しくなる。専用のファイル入出力ルーチンを作成した方が簡単だと思われる }