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 :

tri StringGrid chaine de caract�re


Sujet :

C++Builder

  1. #1
    Expert confirm�
    Avatar de ludojojo
    Homme Profil pro
    D�veloppeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Billets dans le blog
    5
    Par d�faut tri StringGrid chaine de caract�re
    Bonjour,
    Apr�s de nombreuses recherches, je n'ai pas trouv� de solution pour pouvoir trier un StringGrid. rempli de chaine de caract�re.
    J'aimerai pouvoir avoir une fonction un peut comme sous Excel qui me permet en fonction de la colonne choisi pouvoir trier l'ensemble du tableau.
    J'arrive � le faire avec des nombres, mais impossible avec des chaines de caract�res...

    Quelqu'un connait'il une solution qui pourrais me permettrai de faire une fonction de ce type?

    Merci par avance
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la r�ponse est pertinente

  2. #2
    Expert confirm�

    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 : 40
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    Essaye la fonction AnsiCompare

  3. #3
    Expert confirm�
    Avatar de ludojojo
    Homme Profil pro
    D�veloppeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Billets dans le blog
    5
    Par d�faut
    Voici le code que j'ai commenc� � cr�er!

    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
    int Debut = 1; //pour décalage du aux entetes
    int Colonne = StringGrid->ColCount-1;
    AnsiString S;
     
    for (int i = Debut;i < StringGrid->RowCount-1;i++)//parcours des lignes
     {
      for (int j = (i+1); j < StringGrid->RowCount;j++)//parcours des lignes (sauf la première)
      {
       if (StringGrid->Cells[Colonne][i].AnsiCompare(StringGrid->Cells[Colonne][i] & StringGrid->Cells[Colonne][j])<0)//si la valeur courante est supérieur à la valeur suivante
       {
        S = StringGrid->Rows[i]->Text;//on conserve la ligne
        StringGrid->Rows[i]->Text = StringGrid->Rows[j]->Text;//la ligne courante prend la valeur de la ligne suivante
        StringGrid->Rows[j]->Text = S;//on réaffecte la ligne où il faut
       }
      }
     }
    Mais cela ne modifie en rien mon Tableau...
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la r�ponse est pertinente

  4. #4
    Expert confirm�

    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 : 40
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    Pour moi �a devrait plut�t �tre ceci mais je n'ai pas essay� :

    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
    int Debut = 1; //pour décalage du aux entetes
    int Colonne = StringGrid->ColCount-1;
    AnsiString S;
     
    for (int i = Debut;i < StringGrid->RowCount-1;i++)//parcours des lignes
     {
      for (int j = (i+1); j < StringGrid->RowCount;j++)//parcours des lignes (sauf la première)
      {
       if (StringGrid->Cells[Colonne][i].AnsiCompare(StringGrid->Cells[Colonne][j])<0)//si la valeur courante est supérieur à la valeur suivante
       {
        S = StringGrid->Rows[i]->Text;//on conserve la ligne
        StringGrid->Rows[i]->Text = StringGrid->Rows[j]->Text;//la ligne courante prend la valeur de la ligne suivante
        StringGrid->Rows[j]->Text = S;//on réaffecte la ligne où il faut
       }
      }
     }
    De plus la tu fait un tri sur la derni�re colonne, je sais pas si c'est bien sur cette colonne que tu veut trier

  5. #5
    Expert confirm�
    Avatar de ludojojo
    Homme Profil pro
    D�veloppeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Billets dans le blog
    5
    Par d�faut
    f�licitation!!
    Merci je ferais une fonction qui permet de choisir le sens du tri... et je la mettrai en ligne pour ceux qui on besoin.

    Merci encore
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la r�ponse est pertinente

  6. #6
    Expert confirm�
    Avatar de ludojojo
    Homme Profil pro
    D�veloppeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Billets dans le blog
    5
    Par d�faut
    comme promis voici les deux fonctions de tri, dans les deux sens de A � Z et de Z � 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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    void __fastcall TForm_Tab_Clients::TrierlacolonneAZ1Click(TObject *Sender)
    {
    int Fin = StringGrid->RowCount;; //pour décalage du aux entetes
    int Colonne = StringGrid->Selection.Left;
    AnsiString S;
     
    for (int i = Fin;i > 1;i--)//parcours des lignes
     {
      for (int j = (i-1); j > 0 ;j--)//parcours des lignes (sauf la première)
      {
       if (StringGrid->Cells[Colonne][i].AnsiCompare(StringGrid->Cells[Colonne][j])<0)//si la valeur courante est supérieur à la valeur suivante
       {
        S = StringGrid->Rows[i]->Text;//on conserve la ligne
        StringGrid->Rows[i]->Text = StringGrid->Rows[j]->Text;//la ligne courante prend la valeur de la ligne suivante
        StringGrid->Rows[j]->Text = S;//on réaffecte la ligne où il faut
       }
      }
     }
    Aff_Num_Ligne();
    }
     
     
    void __fastcall TForm_Tab_Clients::TrierlacolonneZAClick(TObject *Sender)
    {
    int Debut = 1; //pour décalage du aux entetes
    int Colonne = StringGrid->Selection.Left;
    AnsiString S;
     
    for (int i = Debut;i < StringGrid->RowCount-1;i++)//parcours des lignes
     {
      for (int j = (i+1); j < StringGrid->RowCount;j++)//parcours des lignes (sauf la première)
      {
       if (StringGrid->Cells[Colonne][i].AnsiCompare(StringGrid->Cells[Colonne][j])<0)//si la valeur courante est supérieur à la valeur suivante
       {
        S = StringGrid->Rows[i]->Text;//on conserve la ligne
        StringGrid->Rows[i]->Text = StringGrid->Rows[j]->Text;//la ligne courante prend la valeur de la ligne suivante
        StringGrid->Rows[j]->Text = S;//on réaffecte la ligne où il faut
       }
      }
     }
     Aff_Num_Ligne();
    }
    La fonction Aff_Num_Ligne(); ne sert qu'� r�actualis� les num�ros de ligne...
    Bon courage � tous!
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la r�ponse est pertinente

  7. #7
    Expert confirm�
    Avatar de ludojojo
    Homme Profil pro
    D�veloppeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Billets dans le blog
    5
    Par d�faut


    je me permet de faire remonter cette discution par ce que j'ai un petit probl�me.
    Lors de mon tri de A�Z je pert ma derni�re ligne de mon tableau et j'en ai une vide qui se cr��e en haut de tableau...
    Je ne comprend pas pourquoi...

    re voici le code utilis� :
    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
    void __fastcall TForm_Tab_Clients::TrierdeAZ1Click(TObject *Sender)
    {
    int Fin = StringGrid->RowCount; //pour décalage du aux entetes
    int Colonne = StringGrid->Selection.Left;
    AnsiString S;
     
    for (int i = Fin;i > 1;i--)//parcours des lignes
     {
      for (int j = (i-1); j > 0 ;j--)//parcours des lignes (sauf la première)
      {
       if (StringGrid->Cells[Colonne][i].AnsiCompare(StringGrid->Cells[Colonne][j])<0)//si la valeur courante est supérieur à la valeur suivante
       {
        S = StringGrid->Rows[i]->Text;//on conserve la ligne
        StringGrid->Rows[i]->Text = StringGrid->Rows[j]->Text;//la ligne courante prend la valeur de la ligne suivante
        StringGrid->Rows[j]->Text = S;//on réaffecte la ligne où il faut
       }
      }
     }
    Aff_Num_Ligne();
    }
    Merci par avance
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la r�ponse est pertinente

  8. #8
    Expert confirm�
    Avatar de ludojojo
    Homme Profil pro
    D�veloppeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Billets dans le blog
    5
    Par d�faut
    quelqu'un aurait il d�j� fait une fonction de tri pour un StringGrid?
    Je vous avoue que je ne comprend vraiment pas pourquoi cette ligne devient vide. Pour information c'est la derni�re ligne de mon tableau qui est remplac�e par une ligne vide!

    Merci par avance
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la r�ponse est pertinente

  9. #9
    Expert confirm�

    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 : 40
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    Salut,
    as tu essay� de d�buger avec des points d'arr�t et de voir ce qui se passe ?

  10. #10
    Expert confirm�
    Avatar de ludojojo
    Homme Profil pro
    D�veloppeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Billets dans le blog
    5
    Par d�faut
    J'ai trouv� l'origine du probl�me :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    for (int j = (i-1); j > 1 ;j--)//parcours des lignes (sauf la première)
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la r�ponse est pertinente

  11. #11
    Expert confirm�
    Avatar de ludojojo
    Homme Profil pro
    D�veloppeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Billets dans le blog
    5
    Par d�faut
    erreur de ma part, le probl�me n'est toujours pas r�solu!!!

    si quelqu'un � une id�e je suis preneur par ce que �a commence � me souler de tourner en rond!

    merci par avance
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la r�ponse est pertinente

  12. #12
    Expert confirm�
    Avatar de ludojojo
    Homme Profil pro
    D�veloppeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Billets dans le blog
    5
    Par d�faut
    je commence � trouver mon probl�me de plus en plus complexe!!
    En effet je constate que mon algorithme fonctionne tr�s bien!
    Je me permet de dire cela par ce que si je charge une deuxi�me fois le m�me fichier, et que je demande � nouveau un tri, celui-ci fonctionne!

    Je suis perdu je ne comprend pas d'ou vient le probl�me, je suis vraiment tr�s emb�t�!!
    Quelqu'un aurai t il une suggestion � me faire?
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la r�ponse est pertinente

  13. #13
    Expert confirm�
    Avatar de ludojojo
    Homme Profil pro
    D�veloppeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Billets dans le blog
    5
    Par d�faut
    oui j'ai essayer de d�beuger mais sans r�sultat! je peut vous fournir mon projet si �a peut �tre utile! je vous avoue que si je pouvais trouver la source de ce pb avant demain cela m'arrangerais bcp!!!!
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la r�ponse est pertinente

  14. #14
    Expert confirm�

    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 : 40
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    Citation Envoy� par ludojojo Voir le message
    je peut vous fournir mon projet si �a peut �tre utile!
    Cela peut �tre une solution si tu arrive � l'envoyer

Discussions similaires

  1. Programme de tri de chaine de caract�res
    Par vetchang dans le forum Langage
    R�ponses: 1
    Dernier message: 27/05/2008, 17h26
  2. Tri de chaine de caract�re avec fgets
    Par clampin dans le forum D�buter
    R�ponses: 4
    Dernier message: 16/05/2008, 22h42
  3. Comparaisons et tri des chaines de caract�re.
    Par liliemmy dans le forum SQL
    R�ponses: 2
    Dernier message: 01/04/2008, 17h52
  4. code de filtre et tri des chaines de caract�res
    Par fatenatwork dans le forum Collection et Stream
    R�ponses: 18
    Dernier message: 12/03/2008, 16h31
  5. R�ponses: 17
    Dernier message: 16/12/2005, 09h45

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