Classer par ordre alphabetique(simple)

Soyez le premier à donner votre avis sur cette source.

Vue 9 407 fois - Téléchargée 368 fois

Description

Voila------------------->
|
|
|
|
|
\/
c un module

Source / Exemple :


'Vous etes priez de respecter ce code
'Meme si vous le trouvez incoplait
'Dite le mois puis je le rectifeai
'Moi je trouve qu'il est simple
'info-----> je ne regarde sur auqun code
'-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
'Ce triage est un triage que g inventer il donne le plus grande imporatance au premier puis apre
'Ex 1: chien
'   2: Chat
'   3: Boule
'   4: Variable
'comme Variable est le plus grand mot(composer de 8 caractere)
'le premier caractere(code decimal)de tout les mots sera multiplier par 8
'puis le 2 par 8-1 etc... puis le total sera fixé dans un varaible specifique
'au mot
'puis le mot qui a le plus petit nombre sera le premier...
'meme si il y deux fois le meme nombre la function
'classera le deuxiemeou troiseme... venu apres le mots deja enregistre
'Cela classe aussi les signe par rapport a code  decimal
'Le plus c wquon peut associer des donné pour pouvoir les retrouver facilemnt
'Comme pour des fichier
'ex donné : son nom
'd1:      son extension
'd2: sa date de creation
'etc....
'-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
'''''''''Script Arts
'''''''''Script Arts

'Enregistrement des variables
Public Mots(1 To 1000) As Typen1
Dim ajou(1 To 1000) As Typen1
Dim Remot(1 To 1000) As Typen2
Public Type Typen1
      Donne As String
      D1 As String
      D2 As String
      D3 As String
      D4 As String
      D5 As String
      D6 As String
      D7 As String
      D8 As String
      D9 As String
End Type
Public Type Typen2
      Donne As String
      D1 As String
      D2 As String
      D3 As String
      D4 As String
      D5 As String
      D6 As String
      D7 As String
      D8 As String
      D9 As String
      nb As Byte
End Type
Public MotClasse(1 To 1000) As Typen1
Dim Maxlen As Long
'Nombredemot : Nombre de mot a trier (pas aubliger que ce soit extacte mais toujour +)

Public Function ClasseOrdeAlphabetique(ByVal Nombredemot As Long)
nbmot = 0
Maxlen = 0
'cherche le plus grand mots (en longeur)
For i = 1 To Nombredemot
If Len(Mots(i).Donne) > Maxlen Then
'si la longueur du mot encore est plus grand que la variable cela l'enregistre
Maxlen = Len(Mots(i).Donne)
End If
'cherche le nombre de mots
If Mots(i).Donne = "" Then
Exit For
Else
nbmot = nbmot + 1
End If
Next i
'Commence a chercher les mots
For mot = 1 To nbmot
cal = 0
'commence a chercher les lettre
For lettre = 1 To Len(Mots(mot).Donne)
'Mais a la puissance de sa possision son code decimal(tou reduit en minuscule )
'c apres que la difference entre la majuscule est le minuscule va ce joué
cal = cal + (Asc(Mid(UCase(Mots(mot).Donne), lettre, 1))) ^ (Maxlen - lettre + 1)
'End If
Next lettre
For lettre2 = 1 To Len(Mots(mot).Donne)
If Asc(Mid(Mots(mot).Donne, lettre2, 1)) >= 97 And Asc(Mid(Mots(mot).Donne, lettre2, 1)) <= 122 Then
'Si c une minuscule ajoute 1+maxlen - letrre
'Pareil c la premier qui vaut le + pui la deusieme etc...
cal = cal + 1 + Maxlen - lettre2
End If
Next lettre2
'enregistre le nombre trouver puis c autre variable
ajou(mot).Donne = cal
ajou(mot).D1 = Mots(mot).D1
ajou(mot).D2 = Mots(mot).D2
ajou(mot).D3 = Mots(mot).D3
ajou(mot).D4 = Mots(mot).D4
ajou(mot).D5 = Mots(mot).D5
ajou(mot).D6 = Mots(mot).D6
ajou(mot).D7 = Mots(mot).D7
ajou(mot).D8 = Mots(mot).D8
ajou(mot).D9 = Mots(mot).D9
Next mot
For k = 1 To nbmot
'initialise
tot = 1
For j = 1 To nbmot
'compare le mot(k) au motcherche(j) compare le nombre
If ajou(k).Donne <> ajou(j).Donne Then
'si il est différant
op = Len(ajou(j).Donne)
opr = Len(ajou(k).Donne)
If Val(ajou(j).Donne) < Val(ajou(k).Donne) Then
'si il est plus grand il l'augemente d'une place
tot = tot + 1
End If
End If
Next j
If Remot(tot).nb > 0 Then
'si il y adeja un mot ajoute une place(le met apres)
tot = tot + Remot(tot).nb
End If
If Remot(tot).Donne = "" Then
'si la variable est vide il enregistre
Remot(tot).Donne = Mots(k).Donne
Remot(tot).D1 = Mots(k).D1
Remot(tot).D2 = Mots(k).D2
Remot(tot).D3 = Mots(k).D3
Remot(tot).D4 = Mots(k).D4
Remot(tot).D5 = Mots(k).D5
Remot(tot).D6 = Mots(k).D6
Remot(tot).D7 = Mots(k).D7
Remot(tot).D8 = Mots(k).D8
Remot(tot).D9 = Mots(k).D9
Remot(tot).nb = 1
End If
Next k
' je pouvais le metre tou de suite mais il y avit une variable(nb)qui
'cervais a rien
For classe = 1 To nbmot
MotClasse(classe).Donne = Remot(classe).Donne
MotClasse(classe).D1 = Remot(classe).D1
MotClasse(classe).D2 = Remot(classe).D2
MotClasse(classe).D3 = Remot(classe).D3
MotClasse(classe).D4 = Remot(classe).D4
MotClasse(classe).D5 = Remot(classe).D5
MotClasse(classe).D6 = Remot(classe).D6
MotClasse(classe).D7 = Remot(classe).D7
MotClasse(classe).D8 = Remot(classe).D8
MotClasse(classe).D9 = Remot(classe).D9
Next classe
End Function
Public Function Actualise()
'Pa besoin desplication
For o = 1 To 1000
Mots(o).Donne = ""
Mots(o).D1 = ""
Mots(o).D2 = ""
Mots(o).D3 = ""
Mots(o).D4 = ""
Mots(o).D5 = ""
Mots(o).D6 = ""
Mots(o).D7 = ""
Mots(o).D8 = ""
Mots(o).D9 = ""
ajou(o).Donne = ""
ajou(o).D1 = ""
ajou(o).D2 = ""
ajou(o).D3 = ""
ajou(o).D4 = ""
ajou(o).D5 = ""
ajou(o).D6 = ""
ajou(o).D7 = ""
ajou(o).D8 = ""
ajou(o).D9 = ""
Remot(o).nb = 0
Remot(o).Donne = ""
Remot(o).D1 = ""
Remot(o).D2 = ""
Remot(o).D3 = ""
Remot(o).D4 = ""
Remot(o).D5 = ""
Remot(o).D6 = ""
Remot(o).D7 = ""
Remot(o).D8 = ""
Remot(o).D9 = ""
MotClasse(o).Donne = ""
MotClasse(o).D1 = ""
MotClasse(o).D2 = ""
MotClasse(o).D3 = ""
MotClasse(o).D4 = ""
MotClasse(o).D5 = ""
MotClasse(o).D6 = ""
MotClasse(o).D7 = ""
MotClasse(o).D8 = ""
MotClasse(o).D9 = ""
Next o
End Function

Conclusion :


il est aussi dnas le zip

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
331
Date d'inscription
mardi 12 novembre 2002
Statut
Membre
Dernière intervention
10 février 2009

t'as pas l'impression ke microsoft à déjà écrit du code ki fait ca ds le listbox et ke c'est pas un peut + rapide ?
parce ke avec ton truc, y'a à peu près 173 lignes à exécuter
avec le code de microsoft du listbox, y'a peut-etre 10 lignes maxi
conclusion : c'est lequel le code le plus rapide ? (ca te rajoute ke 4ko en mémoire je crois)
donc, tu passes ton tableau ds le listbox, et tu le repasse ds le tablo. (directement)
Messages postés
14
Date d'inscription
mercredi 13 novembre 2002
Statut
Membre
Dernière intervention
7 février 2004

Oui mais ci ta pa envie de mettre un list box .si tu veut que ca soit un fonction.par exemple quan tu est dans un tableau.si tu veut que ca trie la colone 1 par orde alphabetique c + simple dutiliser cette fonction
Messages postés
331
Date d'inscription
mardi 12 novembre 2002
Statut
Membre
Dernière intervention
10 février 2009

ce que tu aurais pu faire, c'est :
-tu prends un listbox
-tu mets tous tes mots dedans
-tu met la propriété "sorted" à "True"

c'est nettement + rapide, non ?!?
Messages postés
54
Date d'inscription
lundi 13 janvier 2003
Statut
Membre
Dernière intervention
30 juin 2004

c clair que 300 (g pas compté) lignes de code pour faire un simple tri alphabétique c un peu bcp non ??? pkoi faire simple qd on peut faire compliqué ???
heureusement que t'as pas fait un "hello world" sinon on aurait peut etre eu 4 fois plus de code lol
Messages postés
14
Date d'inscription
mercredi 13 novembre 2002
Statut
Membre
Dernière intervention
7 février 2004

tza fumer
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (TheBestofComputer)