Créer un nouveau type

Résolu
mathieu57100 Messages postés 103 Date d'inscription jeudi 24 juin 2004 Statut Membre Dernière intervention 9 février 2006 - 9 mars 2005 à 14:50
EddiTheHead Messages postés 58 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 2 juin 2006 - 13 mars 2005 à 23:33
bonjour, j'ai créée un type composé de nombre et ca fonctionne:
type
TType = '0'..'9';

par contre j'aimerai y ajouter le caractère "_" et c'est lç que ca bloque...
d'après ce que j'ai trouvé dans une doc on pourrait faire: TType = ['_', '0'..'9'];
mais j'ai un message à la compilation qui me dit
"(Type) attendu(e) mais "[" trouvé(e)"

j'ai donc remplacé les "[" et "]" par "(" et ")" et là il me met un autre message:
"Identificateur attendu(e) mais constante chaine trouvé(e)

et j'avoue que je planne un peu...

3 réponses

EddiTheHead Messages postés 58 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 2 juin 2006
13 mars 2005 à 23:33
Salut,

Ton "TType = '0'..'9';" est de type intervalle, tu ne peut avoir que le 1er et le dernier élèments. Le problème avec ce type, c'est que tu peut dépasser l'intervalle et planter ton prog (a moins de mettre la directive {$R+}).

Tu peut essayer avec un type ensemble :

Type TType = Set of Char;
Var Chiffre : TType;
Begin
Chiffre := ['_', '0'..'9'];
ou Chiffre := ['_', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];

et puis faire le test de niki2001 :
If Caractere In Chiffre Then ...

Ou encore, de prendre un TEditMask.
3
Niki2001 Messages postés 85 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 17 décembre 2005 1
9 mars 2005 à 15:22
Pour moi, c'est impossible. A mon sens tu devrais utiliser Char et faire le test "in ['_', '0'..'9']" avant chaque affectation.
J'espère que quelqu'un trouvera une meilleure solution.
Sur ce...
0
neodelphi Messages postés 442 Date d'inscription jeudi 4 avril 2002 Statut Membre Dernière intervention 11 août 2008
10 mars 2005 à 06:52
Je suis d'accord avec Niki ça me parait difficile...
Ou alors peut-etre si tu met sous la forme ['0', '1', '2', '3', '8', '9', '_'] mais je suis pas sur...

neodelphi
0
Rejoignez-nous