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 :

Reconnaissance de constante


Sujet :

Delphi

  1. #1
    AT
    AT est déconnecté
    Membre régulier Avatar de AT
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 168
    Points : 85
    Points
    85
    Par défaut Reconnaissance de constante
    Bonjour ,


    Je dispose de constantes :

    Const1 : H,Po,Cr,B,Kp,Ne,……
    Const2 H=1, Po=12, Cr=41, B=27, Kp= 33.4, Nz =45,6 ……

    Il s’agit de reconnaître les const1 qud elles sont écrites dans un edit afin d'obtenir comme l'image jointe (en trichant !) dans une listbox par ex
    en évitant de remettre 2 fois la même.

    merci
    AT

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 454
    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 454
    Points : 24 866
    Points
    24 866
    Par défaut
    Pour le moment, juste la structure du code, qui pourrait te donner des idées
    ... les Noms des variables peuvent-ils contenir les mêmes lettre gerne H et Ha, la Casse est-elle importante (si oui cela peut aider au découpage !), ... avec plus d'infos, j'aurais peut-être le temps de pondre un truc ...

    Code Déplacé ICI ...
    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
    AT
    AT est déconnecté
    Membre régulier Avatar de AT
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 168
    Points : 85
    Points
    85
    Par défaut
    Bonjour,

    Pour :
    les Noms des variables peuvent-ils contenir les mêmes lettre gerne H et Ha,
    Oui je peux avoir par ex : H, He, Hp ou C, Ca, Cs, Cp

    merci

    AT
    AT

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 454
    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 454
    Points : 24 866
    Points
    24 866
    Par défaut
    OK, donc la Casse peut nous servir, est-il possible que soit obligatoire une Majuscule au début du nom de variable, le reste en minuscule ?
    Ainsi on ne pourra écrire que "He" ou "Ca" mais pas "EH", "CA", "eH", "cA", "eh" et "ca", ...
    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

  5. #5
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Ne pas oublier qu'une partie de la solution a déjà été donnée ici.

    Mais il serait intéressant d'avoir un exemple de saisie dans le TEdit.

    @+ Claudius

  6. #6
    AT
    AT est déconnecté
    Membre régulier Avatar de AT
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 168
    Points : 85
    Points
    85
    Par défaut
    oui je sais pour la partie de solution, le tout est de lier le code precedant à la lecture d'un tableau de constante

    Par ex je tape dans l'edit : HHeHpCCa
    ici pas de probleme pour couper mon texte mais comment recuperer le decoupage et le lier au valeur de constante

    merci
    AT

  7. #7
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 454
    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 454
    Points : 24 866
    Points
    24 866
    Par défaut
    Ah, donc Claudius a déjà fourni un algo, chic alors, donc on reprend la fonction ParseFormula et l'on rempli ConvertConstantes


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    type
      TConstanteType = (cNone, cH, cPo, cCr, cB, cKp, cNz);
      TConstanteNameValue = record
        Name: string[2];
        Value: Double;
      end;
      TConstanteNameValueDynArray = array of TConstanteNameValue;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    const
      CONSTANT_VALUES : array[TConstanteType] of TConstanteNameValue =
        (
          (Name: ''),
          (Name: 'H';  Value: 1 ),
          (Name: 'Po'; Value: 12 ),
          (Name: 'Cr'; Value: 41 ),
          (Name: 'B';  Value: 27 ),
          (Name: 'Kp'; Value: 33.4 ),
          (Name: 'Nz'; Value: 45.6 )
        );
    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
     
    function ConvertConstantes(const S: string; out A: TConstanteNameValueDynArray): Integer;
    var
      ConstantesList: TStringList;
      I, D : Integer;
      K : TConstanteType;
    begin
      ConstantesList := TStringList.Create();
      try
        ParseFormula(S, ConstantesList);
        Result := ConstantesList.Count; 
        SetLength(A, Result);
        D := 0;
        for I := 0 to Result - 1 do
        begin
          K := IndexOfConstanteValue(ConstantesList.Strings[I]);
          if K > cNone then
            A[I - D] := CONSTANT_VALUES[K]
          else
            Inc(D);
        end; 
        if D > 0 then
          SetLength(A, Result - D);
      finally
        ConstantesList.Free();
      end;
     
    end;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function IndexOfConstanteValue(const AName: string): TConstanteType;
    begin
      for Result :=	Low(CONSTANT_VALUES) to High(CONSTANT_VALUES) do
        if CONSTANT_VALUES[Result].Name = AName then
          Exit;
     
      Result := cNone;
    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

  8. #8
    AT
    AT est déconnecté
    Membre régulier Avatar de AT
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 168
    Points : 85
    Points
    85
    Par défaut
    Bonjour,

    merci
    AT

  9. #9
    AT
    AT est déconnecté
    Membre régulier Avatar de AT
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 168
    Points : 85
    Points
    85
    Par défaut
    Simplement

    à quoi correspond arseFormula ? non défini

    merci
    AT

  10. #10
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 44
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Ah, donc Claudius a déjà fourni un algo, chic alors, donc on reprend la fonction ParseFormula et l'on rempli ConvertConstantes

  11. #11
    AT
    AT est déconnecté
    Membre régulier Avatar de AT
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 168
    Points : 85
    Points
    85
    Par défaut
    En effet merci

    J'avais reecris la fonction autrement.
    Avec les differents post j'avais adapte une solution perso

    AT

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

Discussions similaires

  1. Gestion des constantes
    Par valfredr dans le forum XMLRAD
    Réponses: 5
    Dernier message: 18/06/2003, 16h23
  2. Réponses: 23
    Dernier message: 16/11/2002, 19h41
  3. [ADO] Constantes des types de champ
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 05/09/2002, 11h08
  4. [langage] Reconnaissance de mots
    Par Flo. dans le forum Langage
    Réponses: 2
    Dernier message: 10/08/2002, 23h34
  5. Au sujet des constantes
    Par FranT dans le forum Langage
    Réponses: 8
    Dernier message: 09/08/2002, 11h03

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