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

 Delphi Discussion :

Signification de la fonction Ord


Sujet :

Delphi

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Signification de la fonction Ord
    quel est le role de la fonction ord()

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 452
    Points : 24 863
    Points
    24 863
    Par défaut


    Ord c'est dans un cas particulier l'inverse de Chr ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Si tu lis l'aide en ligne de Delphi ...
    Renvoie la valeur ordinale d'une expression de type ordinal.
    Autrement dit, cela reverra la position dans une liste ordonnée.
    Bon, c'est pas plus clair. Un exemple peut être?

    Exemple 1
    un type énuméré:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    TMonType = (mtInfo1, mtInfo2, mtInfo3);
     
    var 
      UnType : TMonType;
    begin
     ...
      UnType := mtInfo2;
     
      ...
     
      ShowMessage(IntToStr(Ord(UnType)));
    Affichera 1, car Ord(UnType) retourne l'index de la valeur du type (mtInfo2 = 1)

    Exemple 2

    Peut être plus utile....
    Le type 'char' est aussi un type ordinal. Donc Ord('a') te retournera son ordonnancement dans la table ASCII. Son code ASCII quoi.

    C'est inverse de 'chr' cité plus haut. Chr(97) retournera 'a'.

    Si tu veux afficher un a, tu pourrais écrire : ShowMessage(Chr(Ord('a')));

    -

    Cyril HEBUTERNE

  4. #4
    Membre expérimenté Avatar de guillemouze
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    876
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 876
    Points : 1 448
    Points
    1 448
    Par défaut
    Ord retourne aussi l'entier correspondant a un element d'un enum. Par exemple

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 452
    Points : 24 863
    Points
    24 863
    Par défaut
    Effectivement, Ord sert surtout pour les Enumérations, je l'utilise pour convertir une valeur Enuméré en chaine

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShowMessage(GetEnumName(TypeInfo(TAnchorKind), Ord(akLeft)));
    Il est vrai que l'aide n'est pas clair, mais l'exemple fourni l'est ! on oubli souvent les exemples de l'aide ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    uses Dialogs;
    type
       Colors = (ROUGE,BLEU,VERT);
    var
     
      S: string;
     begin
       S := 'BLEU a une valeur ordinale ' + IntToStr(Ord(BLUE)) + #10#10;
       S := S + 'Le code ASCII de "c" est ' + IntToStr(Ord('c')) +  ' décimal';
       MessageDlg(S, mtInformation, [mbOk], 0, mbOK);
     end;
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. [Flash Pascal] Comportement de la fonction Ord
    Par Roland Chastain dans le forum Flash Pascal
    Réponses: 13
    Dernier message: 15/03/2014, 19h29
  2. Equivalent c# de la fonction ord et char
    Par oclone dans le forum Langage
    Réponses: 1
    Dernier message: 27/10/2008, 12h03
  3. Problème avec la fonction ord() en mode graphique.
    Par bahamut100 dans le forum Débuter
    Réponses: 3
    Dernier message: 13/10/2007, 16h30
  4. Signification \t dans fonction echo ou print
    Par webrider dans le forum Langage
    Réponses: 2
    Dernier message: 08/06/2006, 13h44
  5. Fonction ord, mais où es tu ?
    Par Neilos dans le forum C++Builder
    Réponses: 6
    Dernier message: 30/12/2003, 21h56

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