Afficher : Delphi C++
Préférences d'affichage

E2055: Type illégal dans instruction Read/Readln (Delphi)

De RAD Studio XE2

Remonter à Messages d'erreur et d'avertissement (Delphi) - Index

Cette erreur survient lorsque vous essayez de lire une variable dans une Read ou Readln qui n'est pas de type légal.

Vérifiez le type de la variable et assurez-vous qu'un opérateur de déréférencement, d'indiçage ou de sélection de champ n'est pas manquant.


program Produce;
type
  TColor = (red,green,blue);
var
  Color : TColor;
begin
  Readln(Color);     (*<-- Message d'erreur ici*)
end.

Nous ne pouvons pas lire directement les variables de type énuméré.


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

La solution consiste à lire une chaîne, et vérifier cette chaîne dans une table auxiliaire. Dans l'exemple ci-dessus, nous ne nous sommes pas préoccupés de la vérification d'erreur - toute chaîne sera traitée en 'bleu'. En pratique, nous émettrons peut-être un message d'erreur et demanderons à l'utilisateur de réessayer.

Versions précédentes
Autres langues