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 :

Tri d'un tableau


Sujet :

Langage Delphi

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 35
    Par défaut Tri d'un tableau
    Est-ce qu'il existe, sous Delphi 5, une instruction pour trier un tableau ?
    Merci.

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Par défaut
    Salut,

    Tu peux trouver ici dans la Faq :http://castelain.developpez.com/sources/TriStringGrid/
    un exemple de code qui trie une StringGrid suivant le contenu d'une de ses colonnes avec QuickSort, c'est facilement modifiable pour trier un tableau.

    En fait c'est quoi ton tableau car si c'est un tableau d'une seule colonne avec du texte c'est plus simple d'utiliser une StringList et sa méthode Sort.

    A+
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  3. #3
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    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 236
    Par défaut
    Pourquoi trier le tableau dans une TStringList alors qu'il est plus facile et simple de faire un Tri directement sur le Tableau

    Ci dessous le code du tri à bulle

    Code Delphi : 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
     
    type TMonType = record
      Id : Integer;
      Chaine : Strings;
    end;
     
    MonTableau : array of TMonType;
     
    // ....
     
    var
      MonTypeTmp : TMonType;
      bSwap : Booelan;
    begin
      // tri du tableau
      bSwap := True;
      While bSwap do
      begin
        bSwap := False;
        for i := low(MonTableau) to high(MonTableau) - 1 do
        begin
          if (MonTableau[i].Id > MonTableau[i + 1].Id) then
          begin
            MonTypeTmp := MonTableau[i];
            MonTableau[i] := MonTableau[i+1];
            MonTableau[i+1] := MonTypeTmp ;
            bSwap := true;
          end;
        end; // for
      end; // while

    A adapter bien sur à ton tableau
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Par défaut
    Re-bonjour,

    Pourquoi trier le tableau dans une TStringList alors qu'il est plus facile et simple de faire un Tri directement sur le Tableau
    ... s'il s'agit de chaînes de caratères à trier le tri d'une StringList s'effectue avec une seule instruction : MaStringList.Sort ... donc pas besoin de se casser la tête avec 26 lignes de code. Non ? En plus Sort c'est du QuicK plus rapide que le tri à bulle.

    A+
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 35
    Par défaut Ok
    Merci !!!

  6. #6
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 076
    Par défaut
    Citation Envoyé par Gilbert Geyer Voir le message
    En plus Sort c'est du QuicK plus rapide que le tri à bulle
    Bon la transformation de Array vers TStringList puis réciproque, cela prend du temps, ... peut-être remplacé le array définitivement pas une TStringList
    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

  7. #7
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Par défaut
    Bonjour,

    ... peut-être remplacé le array définitivement pas une TStringList
    ... effectivement ce serait mieux si le contexte permet de le faire
    ... et s'il veut un tri de chaînes plus rapide que le Quick on pourra toujours lui proposer AlphaSort (on en a une version sur le site qui fonctionne avec un array de string ... par contre elle utilise davantage que les 26 lignes de code du tri à bulle).

    A+
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  8. #8
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    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 236
    Par défaut
    Citation Envoyé par Gilbert Geyer Voir le message
    (on en a une version sur le site qui fonctionne avec un array de string ... par contre elle utilise davantage que les 26 lignes de code du tri à bulle).
    Bein quoi ?? il est bien le tri à bulle, qu'est ce qu'il a mon tri à bulle ?

    Enfin, bon, pour ma part, j'aime bien le tri à bulle, car il est facile à retenir et à écrire
    Puis selon le nombre d'éléments à trier, on a pas besoin de trop se casser la tête avec lui et il est quand même assez rapide ^^

    Sinon, je serais intéressé par le code du QuickSort et AlphaSort (Juste pour voir)
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  9. #9
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 076
    Par défaut
    Un petit papier surAlphaSort de Lionel Delafosse, un ancien de mes collègues ... tu as du code, avec des string (il peut être plus performant avec du PChar)
    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

  10. #10
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Par défaut
    Re-bonjour,

    Bein quoi ?? il est bien le tri à bulle, qu'est ce qu'il a mon tri à bulle ?
    ... je ne critique pas le tri à bulle car chaque méthode de tri est utilisable dans les conditions où elle excelle.

    Sinon, je serais intéressé par le code du QuickSort et AlphaSort (Juste pour voir)
    1) Pour le QuickSort : voir ici, (FAQ) : http://castelain.developpez.com/sources/TriStringGrid/
    où l'on trouve la procedure QuickSort(...) utilisée pour le tri d'un StringGrid.

    2) Pour AlphaSort : voir ici : http://www.developpez.net/forums/sho...rt#post2784174
    où l'on trouve la Function AlphaSortAOS(...) qui est encapsulée dans la procedure SupprDoublonsAOS(...)
    (pour supprimer les doublons on trie d'abord puis on crée le fichier-destination en ignorant les doublons).

    A+
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

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

Discussions similaires

  1. Tri d'un tableau en 2D
    Par sniperseb dans le forum C
    Réponses: 4
    Dernier message: 05/01/2006, 16h33
  2. Réponses: 6
    Dernier message: 16/09/2005, 10h30
  3. tri d'un tableau à 2 dimensions
    Par dede92 dans le forum C
    Réponses: 4
    Dernier message: 19/02/2005, 18h29
  4. [langage] Probleme de tri d'un tableau de tableau
    Par Ludo167 dans le forum Langage
    Réponses: 1
    Dernier message: 25/08/2004, 10h32
  5. [] Tri d'un tableau par ordre alphabétique
    Par cafeine dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/09/2002, 08h43

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