E2055 Type non conforme dans une instruction Read/Readln (Delphi)
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.