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

C++Builder Discussion :

problème de Tri sur des données multicolonnes


Sujet :

C++Builder

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Points : 288
    Points
    288
    Par défaut problème de Tri sur des données multicolonnes
    salut tout le monde, mon problème est le suivant:
    j'ai un fichier de données sous la forme suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    col1              col1              precision                     recall
    1,3               2,4                  0,66                          0,44
    3,5              2,7                  0,35                           0,75
    5,1              4,0                  0,77                           0,96
    ....                  ....                   ....                                ....
    j'essaye de trier (Descendant) ce jeu de données selon la colonne "recall", j'ai pensé au TStringList et la fonction Sort(), mais le problème si j'utilise cette fonction je ne sais pas comment récupérer la ligne complète c'est à dire les valeur (col1, col2, precision) associé à la grande valeur fournie par la fonction de tri sur la colonne recall, et ainsi de suite.

    j'espère que je me suis bien fais comprendre.
    (en gros c'est comme sous excel quand on a plusieurs colonne et on veut propager le tri d'une colonne sur toute les autres).

    merci pour votre aide.
    « Aucun homme ne peut rien vous révéler sinon ce qui repose déjà à demi endormi dans l'aube de votre connaissance»

    « No man can reveal to you aught but that which already lies half asleep in the dawning of your knowledge »_(¯`·.__-Alg3ri4nH4ck3r-__.·´¯)_

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Points : 288
    Points
    288
    Par défaut
    re salut,

    Est se que le StringGrid peut faire l'affaire ??

    merci d'avance.
    « Aucun homme ne peut rien vous révéler sinon ce qui repose déjà à demi endormi dans l'aube de votre connaissance»

    « No man can reveal to you aught but that which already lies half asleep in the dawning of your knowledge »_(¯`·.__-Alg3ri4nH4ck3r-__.·´¯)_

  3. #3
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Salut,
    tu peut effectivement le faire avec un TStringGrid plus facilement qu'avec autre chose, mais c'est a toi de le coder, il n'y as aucune fonction déjà faite.

    Avec la propriété Rows tu pourra facilement inter changer les lignes
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  4. #4
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Points : 446
    Points
    446
    Par défaut
    Tu peux aussi créer une structure qui contient tes 4 colonnes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    struct SData {
       double col1;
       double col2;
       double precision;
       double recall;
       SData(double c1,double c2,double p,double r) : col1(c1),col2(c2),precision(p),recall(r) {};
    };
    Tu remplis un exemplaire de ta structure pour chaque ligne de ton tableau et tu le stocke dans un vecteur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    vector<SData> tableau;
    tableau.push_back(SData(1.3,2.4,0.66,0.44));
    tableau.push_back(SData(....));
    ....
    Ensuite tu peux trier ton tableau en utilisant une fonction prédicat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    bool SortByRecall(const SData& a, const SData& b) {
       return ((a.recall)<(b.recall));
    }
     
    sort(tableau.begin(),tableau.end(),&SortByRecall);

Discussions similaires

  1. [AC-2010] Problème de tri sur des horaires :
    Par info.syndi dans le forum Access
    Réponses: 3
    Dernier message: 16/06/2014, 09h17
  2. tri basé sur des données SQL
    Par ddrmax dans le forum C++Builder
    Réponses: 2
    Dernier message: 22/09/2009, 10h03
  3. [A-97] Problème de tri sur des kilomètres
    Par AGR26 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 23/12/2008, 13h27
  4. Problème de mise à jour des données sur un onglet
    Par PenPen_lepingouin dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/06/2008, 17h49
  5. Travailler sur des données qui doivent être triées
    Par haypo dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 19/07/2003, 17h13

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