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

De RAD Studio
Aller à : navigation, rechercher

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.