Aide - Recherche - Membres - Calendrier
Version complète : Trier une DataBase
Les Forums de PalmAttitude.org > GENERAL PalmOS > Développement sous PalmOS
Destino
Salut à tous,

Quelqu'un peux-il m'aider pour l'utilisation de la fonction DmInsertionSort ou DmQuickSort?
J'ai comme DataBase le fichier ArtisteDB.pdb contenant le nom des artistes. j'aimerais pouvoir trier cette base par ordre alphabétique (A-Z).
J'ai du mal à comprendre ces fontions.
Merci de votre aide ou d'un simple exemple.
Patrice
Attention, ces fonctions ne peuvent trier que des enregistrements dans une DB : si chaque "artiste" dans ta base est dans son propre "record", tu peux les utiliser, sinon, c'est à la main.

Pas d'exemple à te proposer mais l'essentiel est que tu écrives une fonction sur le modèle de "DmComparF" et que tu respectes les indications fournies à ce propos dans la doc. Pour faire le tri, la fonction DmQuickSort (ou sa collègue) va faire une succession de comparaison entre des paires de records en appelant ta fonction. Et c'est tout.
Destino
Je suppoz que je dois faire une boucle jusqu'au nombre total des artises en comparant à chaque fois les artistes 2 par 2.c cela?

Qu'est ce que tu entend par "chaque artiste doit etre ds son propre 'record'"?

il me faudra aussi définir la fonction de comparaison je supoz.
elle est sensé faire quoi cette fonction si DmQuickSort fait déja la comparaison?
Excuz moi tu dois me trouver NUL avec toutes ces questions ,mais je veux juste comprendre
Patrice
Le Quick Sort et son collègue l'Insertion Sort sont des algorithmes standards optimisés (on utilise l'un ou l'autre selon ce qui doit être trié) : ils ne comparent pas TOUS les éléments 2 à 2...

Les 2 fonctions trient un base par "record" (au sens du Data Manager) : si toutes les données que tu veux trier sont dans un seul record de la base, ce n'est pas utilisable. Tout dépend de la structure de données que tu utilises.

Tu dois définir la fonction de comparaison et elle doit être du type DmComparF, c'est à dire que ses paramètres et sa valeur de retour sont ceux explicités pour DmComparF (cf. la doc du SDK). Et DmQuickSort fait des comparaisons en utilisant ta fonction, que tu lui passes d'ailleurs en paramètre. Sinon, comment veux-tu que la fonction de tri sache ce qu'elle doit trier et dans quel ordre ? anim_wink.gif
olivier101
Ce qui n'est pas évident à comprendre pour un débutant c'est qu'il suffit d'écrire la fonction de comparaison qui compare 2 enregistrements quelconques et d'appeler DmQuickSort; c'est DmQuickSort qui appellera la fonction de comparaison autant de fois que nécessaire avec les bons paramètres.
Destino
Merci BEAUCOUP à tous. ça marche le tri des Artistes
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.