E2055 Type non conforme dans une instruction Read/Readln (Delphi)

De RAD Studio
Aller à : navigation, rechercher

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

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.