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 Pascal Discussion :

Types énumérés non standards


Sujet :

Langage Pascal

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Types énumérés non standards
    Bonjour.

    Une chtite question :

    Dans le cadre des types énumérés non standards, la fonction ord renvoi la valeur ordinal d'une des valeurs énumérées. Existe t-il une fonction qui fait l'inverse ?

    Pour être plus clair :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    type tjour = (lundi,mardi,mercredi,jeudi,vendredi,samedi,dimanche);
     
    ...
     
    ord(mardi) = 1
    En partant de ce code, existe t-il une fonction qui me renverra mardi quand je lui donnerai 1 comme paramètre ?

    J'ai bien-sûr essayer chr

    Merci l'ami.

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 943
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 943
    Points : 5 655
    Points
    5 655
    Par défaut
    Coa,

    Si tu espères recevoir une chaîne "mardi", alors la réponse est non.
    Si les cons volaient, il ferait nuit à midi.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Non non, mardi n'est pas une chaine...

    Mardi est l'une des valeurs que peut prendre une variable de type tjour.

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 235
    Points : 506
    Points
    506
    Par défaut
    Que veux tu dire par 'types énumérés non standards' ? Ton exemple de type énuméré me semble assez classique non ?

    Pour les conversions tu peux faire ça :
    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
    20
    21
    22
    program TestEnum;
     
    {$mode objfpc}{$H+}
     
    uses TypInfo;
     
    type
      TJour=(lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche);
     
     
    function ToString(Jour: TJour): String;
    begin
      Result:=GetEnumName(TypeInfo(TJour), integer(Jour));  
    end;  
     
    var 
      Jour: TJour;
    begin 
      Jour:=TJour(2); // Entier vers enum
     
      WriteLn( ToString(Jour) ); // Enum vers chaîne
    end.
    La conversion vers une chaîne ne marche qu'avec freepascal et delphi à priori.

  5. #5
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    unit {unitname};
     
    interface
     
    uses SysConst;
     
    {$DEFINE SundayAsFirstDay}
    {$IF defined(FDC) or (RTLVersion >= 18.5)}
      {$DEFINE CANINLINE}
    {$IFEND}
     
    type
      TDays = (
      {$IFDEF SundayAsFirstDay}
        dSunday=1,
        dMonday, dTuesday, dWednesday, dThursday, dFriday, dSaturday
      {$ELSE}
        dMonday=1,
        dTuesday, dWednesday, dThursday, dFriday, dSaturday,  dSunday
      {$ENDIF}
      );
    const
      DaysShortNames : array[TDays] of string = (
      {$IFDEF SundayAsFirstDay}
        SysConst.SShortDayNameSun, SysConst.SShortDayNameMon, SysConst.SShortDayNameTue,
        SysConst.SShortDayNameWed, SysConst.SShortDayNameThu, SysConst.SShortDayNameFri,
        SysConst.SShortDayNameSat
      {$ELSE}
        SysConst.SShortDayNameMon, SysConst.SShortDayNameTue, SysConst.SShortDayNameWed,
        SysConst.SShortDayNameThu, SysConst.SShortDayNameFri, SysConst.SShortDayNameSat,
        SysConst.SShortDayNameSun
      {$ENDIF}
      );
     
      DaysLongNames : array[TDays] of string = (
      {$IFDEF SundayAsFirstDay}
        SysConst.SLongDayNameSun, SysConst.SLongDayNameMon, SysConst.SLongDayNameTue,
        SysConst.SLongDayNameWed, SysConst.SLongDayNameThu, SysConst.SLongDayNameFri,
        SysConst.SLongDayNameSat
      {$ELSE}
        SysConst.SLongDayNameMon, SysConst.SLongDayNameTue, SysConst.SLongDayNameWed,
        SysConst.SLongDayNameThu, SysConst.SLongDayNameFri, SysConst.SLongDayNameSat,
        SysConst.SLongDayNameSun
      {$ENDIF}
      );
     
    function DayToInt(aDay: TDays): integer; {$IFDEF CANINLINE}inline;function {$ENDIF}
    function IntToDay(aInt: integer): TDays; {$IFDEF CANINLINE}inline;{$ENDIF}
    function DayLongName(aDay: TDays): string; {$IFDEF CANINLINE}inline;{$ENDIF}
    function DayShortName(aDay: TDays): string; {$IFDEF CANINLINE}inline;{$ENDIF}
     
    implementation
     
    function DayToInt(aDay: TDays): integer; 
    begin
      result := integer(aDay);
    end;
     
    function IntToDay(aInt: integer): TDays;
    begin
      result := TDays(aInt);
    end;
     
    function DayLongName(aDay: TDays): string; 
    begin
      result := DaysLongNames[aDay];
    end;
     
    function DayShortName(aDay: TDays): string;
    begin
      result := DaysShortNames[aDay];
    end;
     
    end.
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Apparemment, je ne me suis pas bien exprimé, parce que personne n'a bien compris la question.

    Cela dit, la réponse se trouvait quand-même dans l'un de vos posts.

    So, thank you very much

    Cya

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 02/04/2012, 13h36
  2. type de données non standard
    Par lity7 dans le forum Services Web
    Réponses: 1
    Dernier message: 03/09/2008, 14h46
  3. Inline avec un type C non standard (TYPEMAP) ?
    Par Chekov dans le forum Modules
    Réponses: 2
    Dernier message: 20/11/2007, 19h20
  4. Réponses: 7
    Dernier message: 02/06/2003, 08h38
  5. Transformer un caractère en type énuméré
    Par HT dans le forum Langage
    Réponses: 3
    Dernier message: 22/10/2002, 20h46

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