Trier par ordre chronologique des noms de famille et des prénoms
noemiefigaro
Messages postés4Date d'inscriptionmercredi 3 août 2005StatutMembreDernière intervention 4 août 2005
-
3 août 2005 à 14:02
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 2006
-
4 août 2005 à 20:14
Je voudrais trier un tableau de plusieurs noms de famille et de prénoms.
Je suis débutante, qqun pourrait-il me fournir un algorithme simple permettant de trier ce tableau par ordre alphabétique.
Merci.
Noémie
A voir également:
Trier par ordre chronologique des noms de famille et des prénoms
noemiefigaro
Messages postés4Date d'inscriptionmercredi 3 août 2005StatutMembreDernière intervention 4 août 2005 3 août 2005 à 15:57
En fait, je suis vraiment au début, alors "requete" ne fait pas encore partie de mes connaissances.
Par exemple, je voudrais savoir comment trier " les noms Dupont Vanderdonck et Faignard".
Quels sont les lignes de code à écrire ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200618 4 août 2005 à 20:14
Ubound(t) renvoit l'index max du tableau 't'.
Ex : dim t(5) -> ubound(t) renvoit 5.
Tu peux toujours t'en passer et faire plus compliqué si tu connais les dimensions de ton tableau :
Const limitemax as integer = 5
dim t(limitemax)
et tu remplaces les ubound(t) par limitemax.
L'avantage de ubound(t) est que tu n'as pas à te préoccuper de la taille de ton tableau surtout s'il est dynamique.
Puisque tu parles d'ajout et de suppression dans le tableau, ça doit convenir parfaitement et t'éviter de gérer des variables dans tous les coins.
Pour ajouter un nom, le mieux est un tableau dynamique :
dim t() as string
'ajout d'un nom : l'index max deviendra 6
dim newindexmax as integer
newindexmax = ubound(t)+1
redim preserve t(newindexmax)
t(newindexmax) ="cunegonde"
'------------------------------
'suppression d'un nom par ex : albert
dim i as integer
for i=0 to ubound(t)
if t(i)="albert" then t(i) = ""
next
' tri du tableau en descendant pour mettre les cellules vides à la fin
For i = 0 To UBound(t) - 1
For j = i + 1 To UBound(t)
If t(i) < t(j) Then
x = t(i)
t(i) = t(j)
t(j) = x
End If
Next j
Next i
'redim du tableau pour éliminer les trous
redim t(ubound(t)-1)
Ensuite, tu peux retrier le tableau en ascendant comme dans mon 1er post.
Tout ça c'est bien compliqué, n'est ce pas ? Et encore, ce n'est que pour un tableau à 1 dimension. Le mieux serait que tu te serves d'une base de données comme access.
-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?