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 :

Comment avoir ce type de tableau ?


Sujet :

Langage Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Points : 199
    Points
    199
    Par défaut Comment avoir ce type de tableau ?
    Bonjour à tous,

    Je cherche à faire un tableau de ce type :


    Nom Code Compteur
    'Bruno' 'A61K' 3
    'Bruno' 'C01C' 7
    'Bruno' 'G06F' 1
    'Pierre' 'A01B' 4
    etc...

    Nom, Code : String
    Compteur : Integer

    Et qui me permette aussi d'incrémenter mon compteur, car je veux tout simplement trouver les fréquences pour chaque Nom-Code.

    Merci pour votre aide,
    Bruno

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Tu crées un type record

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    type TMonType=record
      Nom, Code : String
      Compteur : Integer
    end;
    Puis tu crées ton tableau avec ce type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var
      Montableau : array [1..50] of TMonType;
    Puis tu l'utilises simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    MonTableau[0].Nom := 'Bruno';
    MonTableau[0].Code := 'A61K';
    MonTableau[0].Compteur  := 3;

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Points : 199
    Points
    199
    Par défaut
    Re-Bonjour,

    Pensez-vous que cette déclaration puisse faire l'affaire :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      TMyParam = class(TObject)
      private { Déclarations privées }
      public { Déclarations publiques }
        Name: string;
        Country: String;
        Freq: Integer;
      end;
    Mais j'aurais donc besoin aussi :
    - d'une liste qui contienne mes objects
    - d'une fonction Add(MP) qui ajoute un objet et/ou incrémenter la Freq si l'object existe déjà
    - d'une fonction ExtractFreq(Name, Code)

    quelqu'un peut-il m'aider à compléter mon code ?

    D'avance merci,
    Bruno

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Points : 199
    Points
    199
    Par défaut
    Bonjour Rayek,

    j'etais en train de completer mon message quand tu as répondu.
    J'avais pensé à un record mais n'est-ce pas mieux avec un Objet et d'implementer ses fonction/procedure ?

    Mille merci,
    Bruno

  5. #5
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par Bruno13 Voir le message
    Bonjour Rayek,

    j'etais en train de completer mon message quand tu as répondu.
    J'avais pensé à un record mais n'est-ce pas mieux avec un Objet et d'implementer ses fonction/procedure ?

    Mille merci,
    Bruno
    J'ai juste répondu à la base de ce que tu demandais, après oui tu peux utiliser un Objet.
    Après tu fais comme bon te semble, les deux méthodes sont correctes (même si je pense que l'utilisation d'objet est la meilleure)

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Points : 199
    Points
    199
    Par défaut
    ok merci pour ta réponse. Je pense aussi que l'utilisation d'objet est mieux.

    j'ajoute donc le Tag résolu à mon message.

    A bientôt,
    Bruno

  7. #7
    Membre actif Avatar de Suryavarman
    Homme Profil pro
    Développeur 3D
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur 3D
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Points : 245
    Points
    245
    Par défaut
    Tu peus aussi utiliser une TstringList.
    la clef sera le code ou ce que tu veus, sinon regarde les HashTables

    cela pour associer une string à un objet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    aTStringList : TStringList ;
    aTMyParam    : TMyParam    ;
    aCode        : String      ;
    ...
     aCode := aTMyParam.nom ; 
     aTStringList.AddObject(  aTMyParam.code, aTMyParam  ) ;
     
     aTMyParam  := TMyParam(  aTStringList.Objects( aTStringList.IndexOf ( aCode)  )   ) ;
    j'ai pas essayé les HasTable sur delphi, mais ça serait mieux, car c'est fait pour ce genre de chose.


    Rq :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TMyParam = class(TObject)
    pas besoin de TObject c'est automatique et pas besoin de overload et d'inherited pour le constructeur et le destructeur .

    Rq : vivement les génériques ( alias template en c++ )

  8. #8
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par Suryavarman Voir le message
    Tu peus aussi utiliser une TstringList.
    la clef sera le code ou ce que tu veus, sinon regarde les HashTables

    cela pour associer une string à un objet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    aTStringList : TStringList ;
    aTMyParam    : TMyParam    ;
    aCode        : String      ;
    ...
     aCode := aTMyParam.nom ; 
     aTStringList.AddObject(  aTMyParam.code, aTMyParam  ) ;
     
     aTMyParam  := TMyParam(  aTStringList.Objects( aTStringList.IndexOf ( aCode)  )   ) ;
    j'ai pas essayé les HasTable sur delphi, mais ça serait mieux, car c'est fait pour ce genre de chose.


    Rq :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TMyParam = class(TObject)
    pas besoin de TObject c'est automatique et pas besoin de overload et d'inherited pour le constructeur et le destructeur .

    Rq : vivement les génériques ( alias template en c++ )
    Autant qu'il utilise directement un TObjectList au lieu d'une TStringList.

  9. #9
    Membre actif Avatar de Suryavarman
    Homme Profil pro
    Développeur 3D
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur 3D
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Points : 245
    Points
    245
    Par défaut
    et pourquoi donc ?

  10. #10
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par Suryavarman Voir le message
    et pourquoi donc ?
    Je sais pas, juste qu'une TObjectList est faite pour gérer des Objets (Ajout, suppression, recherche, etc ...) contrairement à un TStringList.

  11. #11
    Membre actif Avatar de Suryavarman
    Homme Profil pro
    Développeur 3D
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur 3D
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Points : 245
    Points
    245
    Par défaut
    Mais tu ne peus pas associer une string à un objet.

    EDIT:
    Je dis pas que les TStringList sont tip-top pour associer une clef à un objet. Mais elles ont le mérite d'être rapidement prises en main.

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

Discussions similaires

  1. Comment avoir plusieurs type de filles MDI ?
    Par arkhamon dans le forum Composants VCL
    Réponses: 3
    Dernier message: 12/11/2007, 18h15
  2. Réponses: 2
    Dernier message: 14/05/2007, 18h07
  3. Réponses: 12
    Dernier message: 25/04/2007, 11h36
  4. Réponses: 4
    Dernier message: 04/02/2007, 18h42
  5. Réponses: 6
    Dernier message: 27/06/2006, 23h26

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