E2055 Read/Readln 文に正しくない型が渡されました (Object Pascal)

提供: Appmethod Topics
移動先: 案内検索

エラーと警告のメッセージ(Object Pascal):インデックス への移動

このエラーは型が正しくない変数を Read 文または Readln 文で読み出そうとしたときに起きます。

変数の型をチェックし,逆参照,インデックス付け,フィールド選択のいずれかの演算子を欠かさないようにしてください。


program Produce;
type
  TColor = (red,green,blue);
var
  Color : TColor;
begin
  Readln(Color);     (*<-- ここでエラーメッセージ*)
end.

{ 列挙型の変数は直接読み出せない }


program Solve;
type
  TColor = (red,green,blue);
var
  Color : TColor;
  InputString: string;
const
  ColorString : array [TColor] of string = ('red', 'green', 'blue');
begin
  Readln(InputString);
  Color := red;
  while (color < blue) and (ColorString[color] <> InputString) do
    Inc(color);
end.

{ 文字列を読み出し,その文字列を補助テーブル内で参照すれば解決する。このコードではエラーチェックの手間を省いたので,すべての文字列は blue として扱われる。実際にはエラーメッセージを出力してユーザーにやり直しを求める場合が多い }