[Résolu][Basic] Tri variable tableau en ordre alphabetique

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Avatar de l’utilisateur
Domm
Membre lOOyal
Membre lOOyal
Messages : 44
Inscription : 22 sept. 2006 19:52
Localisation : Lille (59)
Contact :

[Résolu][Basic] Tri variable tableau en ordre alphabetique

Message par Domm »

Bonjour,

La question est dans le titre.
Y'a-t-il une commande style Tableau().sort
J'ai un tableau dans une macro, et je voudrais qu'il soit trié par ordre alphabétique dans l'ordre des valeurs de l'index.
genre
Tableau(0)=Anne
Tableau(1)=Béatrice
Tableau(2)=Catherine
Tableau(3)=Sylvie

Merci

Domm
Dernière modification par Domm le 30 mai 2008 08:58, modifié 1 fois.
Oo 3.0
Win xp Pro sp2
Access 2000

Projet de gestionnaire de Contacts d'après le carnet d'adresses : http://user.services.openoffice.org/fr/ ... 058#p60058
Avatar de l’utilisateur
Jean-Marc
Membre hOOnoraire
Membre hOOnoraire
Messages : 168
Inscription : 06 févr. 2007 21:31
Localisation : Boulogne sur mer
Contact :

Re: Trier Tableau() par ordre alphabetique en macro

Message par Jean-Marc »

Bonjour Domm

A ma connaissance je ne connais pas de fonction de trie dans les tableau en Basic

j'utilise la bonne vieille méthode du trie bulle

tu trouveras facilement sur le net des exemples
en voici un très parlant http://lwh.free.fr/pages/algo/tri/tri_bulle.htm

Bonne journée
OpenOffice 4.1.5 AOO415m1(Build:9789) - Rev. 1817496
2017-12-11 17:25 - Version: 6.1.0.3 (x64)
Build ID: efb621ed25068d70781dc026f7e9c5187a4decd1 Window 10
libreoffice Version: 6.2.0.3 (x64)
Build ID: 98c6a8a1c6c7b144ce3cc729e34964b47ce25d62
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25143
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

Re: [Base] Trier Tableau() par ordre alphabetique en macro

Message par Dude »

Ci-dessous la procédure et la fonction dont je me sers :

Code : Tout sélectionner

Sub Main
' On crée un tableau avec 3 éléments bidons
' On affiche, on trie et on réaffiche le résultat
oTab = array ("Xavier ", "Bernard ", "Robert ")
print (oTab(0) & oTab(1) & oTab(2))
Tri(oTab(), LBound(oTab()), UBound(oTab()) )
print (oTab(0) & oTab(1) & oTab(2))
End Sub

Function partition(Tableau(), xMin As Long, xMax As Long) As Long
Dim yMin As Long, yMax As Long
Dim indexTab, echange

indexTab = Tableau((xMin +xMax) \ 2)
yMin = xMin -1
yMax = xMax +1
Do
  Do
    yMax = yMax-1
  Loop Until StrComp(Tableau(yMax), indexTab, 0) <= 0
  Do
    yMin = yMin+1
  Loop Until StrComp(Tableau(yMin), indexTab, 0) >= 0
  if yMin < yMax  then
    echange = Tableau(yMin)
    Tableau(yMin) = Tableau(yMax)
    Tableau(yMax) = echange
  else
    partition = yMax
    Exit Function
  end if
Loop
End Function


Sub Tri(Tableau(), xMin As Long, xMax As Long)
Dim p As Long

if xMin < xMax  then
  p = partition(Tableau(), xMin, xMax)
  Tri(Tableau(), xMin, p)
  Tri(Tableau(), p+1, xMax)
end if
End Sub
:idea:
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
Répondre