IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Concaténation de Constantes typées


Sujet :

Langage Delphi

  1. #1
    Membre averti
    Avatar de castorcharly
    Homme Profil pro
    Chef de projet
    Inscrit en
    Février 2009
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2009
    Messages : 423
    Points : 300
    Points
    300
    Par défaut Concaténation de Constantes typées
    Bonjour,

    J'utilise des Constantes typées, pour effectuer un certain nombre de contrôle,
    par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    type
        TvalidChar = set of char;
     
    Const
         kValidAlphaLow: TvalidChar = ['a'..'z'];
         kValidAlphaUpp: TvalidChar = ['A'..'Z'];
    Là, tout va bien, mais je veux faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    kValidAlphaUppLow: TvalidChar = kValidAlphaUpp + kValidAlphaLow;
    Ca ne passe pas, j'ai cherché d'autre solution, mais je ne vois pas comment faire ceci.
    Avez vous une idée ?

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Points : 5 918
    Points
    5 918
    Par défaut
    Bonjour,

    L'aide de Delphi est claire sur ce sujet:
    Les constantes typées ne peuvent intervenir dans des expressions constantes.
    La solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    type
      TvalidChar = set of char;
     
    const
      kValidAlphaLow: TvalidChar = ['a'..'z'];
      kValidAlphaUpp: TvalidChar = ['A'..'Z'];
     
      kValidAlphaUppLow: TvalidChar = ['a'..'z'] + ['A'..'Z'];
    --
    Philippe

  3. #3
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 507
    Points : 2 779
    Points
    2 779
    Billets dans le blog
    10
    Par défaut
    La déclaration de type dans ce cas est superflue. L'exemple ci-dessous marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    const
      kValidAlphaLow = ['a'..'z'];
      kValidAlphaUpp = ['A'..'Z'];
      kValidAlphaUppLow = ['a'..'z'] + ['A'..'Z'];
    ...
     
    procedure test (c1 : char) ;
    begin
      if c1 in kValidAlphaUppLow then
        showMessage (c1+' OK') ;
    end ;
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      test ('c') ;
      test ('D') ;
      test ('é') ;
    end;

  4. #4
    Membre averti
    Avatar de castorcharly
    Homme Profil pro
    Chef de projet
    Inscrit en
    Février 2009
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2009
    Messages : 423
    Points : 300
    Points
    300
    Par défaut
    Merci Alweber,

    je suis un ane !
    Pourquoi j'ai été m'embêter avec des constantes typées, alors que j'utilise habituellement des constantes simples !

    La solution était donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
         kValidAlphaLow = ['a'..'z'];
         kValidAlphaUpp = ['A'..'Z'];
         kValidAlphaUppLow = kValidAlphaUpp + kValidAlphaLow;
    C'est le genre de blocage où tu démontes toute la voiture pour trouver une panne alors que c'est kle fusible qui a griller.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Concaténation d'un type P avec un type C
    Par Sakapatate dans le forum SAP
    Réponses: 1
    Dernier message: 15/01/2010, 10h01
  2. Format de la concaténation - Numéro de type "12-345-678"
    Par pilou2fois dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 23/10/2007, 15h02
  3. Case et constantes typées
    Par Rayek dans le forum Delphi
    Réponses: 7
    Dernier message: 14/02/2007, 14h40
  4. concaténation variables de type std::bitset<>
    Par sanatou dans le forum SL & STL
    Réponses: 3
    Dernier message: 09/11/2006, 22h55
  5. [TP] Constantes typées et non typées, variables
    Par poppels dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 26/10/2005, 23h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo