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.