E2055 Read/Readln 文に正しくない型が渡されました (Delphi)
エラーと警告のメッセージ(Delphi) への移動
このエラーは型が正しくない変数を 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 として扱われる。実際にはエラーメッセージを出力してユーザーにやり直しを求める場合が多い }