Voilà, j'ai un petit problème de tri, et je ne sait pas comment le résoudre.

Bon un petit exemple valant mieux qu'un long discours, voici le programme que j'utilise:
Code : Tout sélectionner
Clef$="UNPEIGNEUNPEIGNE"
long=Len(Clef$)
Global Dim tableclef$(Len(Clef$))
Global Dim TableCrypto$(9,long+1)
Crypto$="SOTPECHEURALEMBOUCHUREDURHONESONPOISSONSURLEGRILDEUXFOISRETOURNA"
For n=1 To long
tableclef$(n)=Mid(Clef$,n,1)+Str(n)
Debug tableclef$(n)
Next n
Debug "------------------------------"
SortArray(tableclef$(),0)
For n=1 To long
Debug tableclef$(n)
Next n
Le problème se situe au niveau des lettres identiques. Par exemple l'index après le tri est celui-ci:
12/16/4/8/14/6/13/5/10/15/2/7/11/3/1/9 alors qu'il devrait-être:
4/8/12/16/6/14/5/13/2/7/10/15/3/11/1/9
Les lettres devant-être relevées de la gauche vers la droite en respectant l'ordre alphabétique. Bien sur il faudrai alors effectuer un deuxième tri sur les lettres de même valeur... Mais cela risque de compliquer pas mal la chose...

Avez-vous une autre solution ?
Autre question. Est-il possible en Pure de commencer un tableau à l'indice 1 au lieu de zéro ? Si mes souvenirs sont exacts en Basic GFA on utilisait Option Base 0 ou Option Base 1. Impossible de trouver en Pure... Mais j'ai peut-être manqué une option. Si oui, il serai souhaitable de la rajouter dans la doc avec l'option DIM.
Merci d'avance pour vos réponses.
