begin process at 2012 05 27 05:52:58
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > ASP - FONCTION DE TRI D'UN TABLEAU EN ASP

ASP - FONCTION DE TRI D'UN TABLEAU EN ASP


 Information sur la source

Note :
7,6 / 10 - par 5 personnes
7,60 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Maths & Algorithmes Niveau :Initié Date de création :22/04/2002 Date de mise à jour :21/05/2003 11:42:51 Vu :23 019

Auteur : fabrice69

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note


 Description

Cette fonction permet de renvoyer un nouveau tableau trié à partir d'un tableau transmis en paramêtre.
Il suffit de déclarer un tableau et de lui donner sa taille et de lancer la fonction sur le tableau non trié et la colonne à prendre en compte dans le tri.    

Source

  • '-----------------------------------------------------------------------------------------------------
  • Function TriTableau (LeTableau, k)
  • ' Permet renvoyer un tableau Trié issu du tableau transmis en paramêtre (N lignes, 3 colonnes) et avec le N° de la colonne à trier k
  • Dim Ligne_Tampon (3)
  • Dim Tableau_Tampon
  • Max = Ubound(LeTableau)
  • ReDim Tableau_Tampon(Max, 3)
  • Do until i = Max
  • ' Chaque élément est comparé à celui qui lui est supérieur dans le classement
  • j=0
  • Do until j = Max
  • If (LeTableau(j, k) > LeTableau((j + 1), k)) Then
  • ' l'élément J est plus important que l'élément J + 1 alors on les intervertit
  • Ligne_Tampon(1) = LeTableau(j,1)
  • Ligne_Tampon(2) = LeTableau(j,2)
  • Ligne_Tampon(3) = LeTableau(j,3)
  • Tableau_Tampon(j,1) = LeTableau((j + 1),1)
  • Tableau_Tampon(j,2) = LeTableau((j + 1),2)
  • Tableau_Tampon(j,3) = LeTableau((j + 1),3)
  • Tableau_Tampon((j + 1),1) = Ligne_Tampon(1)
  • Tableau_Tampon((j + 1),2) = Ligne_Tampon(2)
  • Tableau_Tampon((j + 1),3) = Ligne_Tampon(3)
  • Else
  • Tableau_Tampon(j,1) = LeTableau(j,1)
  • Tableau_Tampon(j,2) = LeTableau(j,2)
  • Tableau_Tampon(j,3) = LeTableau(j,3)
  • Tableau_Tampon((j + 1),1) = LeTableau((j+1),1)
  • Tableau_Tampon((j + 1),2) = LeTableau((j+1),2)
  • Tableau_Tampon((j + 1),3) = LeTableau((j+1),3)
  • End If
  • j=j+1
  • loop
  • i=i+1
  • loop
  • TriTableau = Tableau_Tampon
  • End Function
  • '-----------------------------------------------------------------------------------------------------
  • 'A appeler avec dans le corps de la page :
  • Dim TableauTrie
  • Redim TableauTrie (NbLigne, 3)
  • TableauTrie = TriTableau (tableauNonTrie, 1)
'-----------------------------------------------------------------------------------------------------
Function TriTableau (LeTableau, k)
' Permet renvoyer un tableau Trié issu du tableau transmis en paramêtre (N lignes, 3 colonnes) et avec le N° de la colonne à trier k

Dim Ligne_Tampon (3)
Dim Tableau_Tampon
	Max = Ubound(LeTableau)
ReDim Tableau_Tampon(Max, 3)
	Do until i = Max
		' Chaque élément est comparé à celui qui lui est supérieur dans le classement
		j=0
		Do until j = Max
			If (LeTableau(j, k) > LeTableau((j + 1), k)) Then
			' l'élément J est plus important que l'élément J + 1 alors on les intervertit
				Ligne_Tampon(1) = LeTableau(j,1)
				Ligne_Tampon(2) = LeTableau(j,2)
				Ligne_Tampon(3) = LeTableau(j,3)
				Tableau_Tampon(j,1) = LeTableau((j + 1),1)
				Tableau_Tampon(j,2) = LeTableau((j + 1),2)
				Tableau_Tampon(j,3) = LeTableau((j + 1),3)
				Tableau_Tampon((j + 1),1) = Ligne_Tampon(1)
				Tableau_Tampon((j + 1),2) = Ligne_Tampon(2)
				Tableau_Tampon((j + 1),3) = Ligne_Tampon(3)
			Else
				Tableau_Tampon(j,1) = LeTableau(j,1)
				Tableau_Tampon(j,2) = LeTableau(j,2)
				Tableau_Tampon(j,3) = LeTableau(j,3)
				Tableau_Tampon((j + 1),1) = LeTableau((j+1),1)
				Tableau_Tampon((j + 1),2) = LeTableau((j+1),2)
				Tableau_Tampon((j + 1),3) = LeTableau((j+1),3)
			End If
		j=j+1
		loop
	i=i+1
	loop
	TriTableau = Tableau_Tampon
End Function

'-----------------------------------------------------------------------------------------------------
'A appeler avec dans le corps de la page : 
Dim TableauTrie
Redim TableauTrie (NbLigne, 3)

TableauTrie = TriTableau (tableauNonTrie, 1)
    

 Conclusion

Bon codage.

Romelard Fabrice (Alias F___)


 Sources du même auteur

Source .NET (Dotnet) SHAREPOINT 2007 - OBTENIR LA LISTE DES WEBPARTS DANS UNE PAG...
Source .NET (Dotnet) SHAREPOINT 2007 - OBTERNIR LA LISTE DES FEATURES D'UN SITE
Source avec une capture Source .NET (Dotnet) SHAREPOINT 2007 - CHARGER LA LISTE DES COLLATIONS SHAREPOINT...
Source avec une capture Source .NET (Dotnet) SHAREPOINT 2007 - CHARGER LA LISTE DES LANGUES INSTALLÉES DA...
Source .NET (Dotnet) C# - FONCTION TRÈS SIMPLE POUR ENVOYER UN MAIL VIA SMTP

 Sources de la même categorie

Source avec Zip CARRÉ MAGIQUE par stankov
Source avec Zip Source avec une capture ZIPVIEWER - LISTER LE CONTENU D'UN ZIP par ghuysmans99
AFFICHER LES LIGNES D'UN DATATABLE DS UN ORDRE ALÉATOIRE par taillecrayon
Source .NET (Dotnet) SUITE DE NOMBRES ALESATOIRES DIFFERENTS par ErB
CONVERTIR UN NOMBRE DE BASE 10 EN BASE 36 ET L'INVERSE par Aurelyyy

Commentaires et avis

Commentaire de Mercury le 23/04/2002 17:07:26

Vraiment intéressant. Excellent code.

@+

Mercury

Commentaire de gkuhmel le 25/01/2006 17:39:01

Le code est faux et ne trie pas correctement.
Voici une version correcte permettant en plus d'avoir x colonnes et de préciser un sens de tri


Function TriTableau (LeTableau, k, asc)
' Permet renvoyer un tableau Trié issu du tableau transmis en
' paramêtre (N lignes, x colonnes) et avec le N° de la colonne à trier k
Dim Ligne_Tampon(3)
Dim Tableau_Tampon
Max = Ubound(LeTableau)
NbColonnes = Ubound(LeTableau, 2)
If k <= nbColonnes Then
ReDim Tableau_Tampon(Max, 3)
i = 0
Do until i = Max
' Chaque élément est comparé à celui qui lui est supérieur dans le classement
j=0
Do until j = Max
Dim test
If asc = "ASC" Then
test = LeTableau(j, k) > LeTableau((j + 1), k)
Else
test = LeTableau(j, k) < LeTableau((j + 1), k)
End if
If (test) Then
' l'élément J est plus important que l'élément J + 1 alors on les intervertit
For indexColonne = 0 To nbColonnes
Ligne_Tampon(indexColonne) = LeTableau(j,indexColonne)
LeTableau(j,indexColonne) = LeTableau((j + 1),indexColonne)
LeTableau((j + 1),indexColonne) = Ligne_Tampon(indexColonne)
Next
End If
j=j+1
loop
i=i+1
loop
End if
TriTableau = LeTableau
End Function

Pour l'appeler :
TableauApresTrie = TriTableau(TableauTrie, 1, "DESC")
ou
TableauApresTrie = TriTableau(TableauTrie, 1, "ASC")

Commentaire de shinrei le 19/05/2006 11:57:43

Excellent le dernier code! Merci beacoup

Commentaire de shinrei le 19/05/2006 16:50:20

Non au faite il y aune erreur sur le code de gkuhmel :
Quand on a le nb de colonnes > 3 , il y a des erreurs.

Je me suis permis de le rectifier:

function TriTableau (LeTableau, k, asc)
' Permet renvoyer un tableau Trié issu du tableau transmis en
' paramêtre (N lignes, x colonnes) et avec le N° de la colonne à trier k

'Dim Tableau_Tampon
Max = Ubound(LeTableau)
NbColonnes = Ubound(LeTableau, 2)
Dim Ligne_Tampon
redim Ligne_Tampon(NbColonnes)  ' ici on recupere le nb de colonne exact
If k <= nbColonnes Then
'ReDim Tableau_Tampon(Max, 3)   ' A quoi sert ce tableau??
i = 0
Do until i = Max
' Chaque élément est comparé à celui qui lui est supérieur dans le classement
j= 0
Do until j = Max
Dim test
If asc = "ASC" Then
test = LeTableau(j, k) > LeTableau((j + 1), k)
Else
test = LeTableau(j, k) < LeTableau((j + 1), k)
End if
If (test) Then
' l'élément J est plus important que l'élément J + 1 alors on les intervertit
For indexColonne = 0 To nbColonnes
Ligne_Tampon(indexColonne) = LeTableau(j,indexColonne)
LeTableau(j,indexColonne) = LeTableau((j + 1),indexColonne)
LeTableau((j + 1),indexColonne) = Ligne_Tampon(indexColonne)
Next
End If
j=j+1
loop
i=i+1
loop
End if
TriTableau = LeTableau
End Function

Ciao,

Commentaire de sbicha le 22/08/2006 15:51:21

Bonjour,

Je voulais juste vous remercier pour cette fonction qui m'a été très utile et très efficace.

Bonnes continuations ;o)

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,388 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales