Bonjourà tous .
1)
Comment trier en ordre Decroissant ou Croissant une colonne au choix d'un tableau à dimensions multiples , avec comme contrainte de garder les elements des lignes ?
Exemple :
soit un tableau de 5 colonnes sur 1000 lignes.
Dim Tableau.l(5,1000)
Avec en ligne 1000 du tableau
Tabeau(0,1000) = 124
Tabeau(1,1000) = 1
Tabeau(2,1000) = 22
Tabeau(3,1000) = 125
Tabeau(4,1000) = 456
Tabeau(5,1000) = 8
Si on tri par colonne 4 et que justement la colonne 4 de cette ligne 1000 contienne la valeur maxi ( la premiere valeur maxi ), comment mettre en
premier dans le tableau (5,1) les valeurs de Tableau(5,1000)
Tabeau(0,1) = 124
Tabeau(1,1) = 1
Tabeau(2,1) = 22
Tabeau(3,1) = 125
Tabeau(4,1) = 456
Tabeau(5,1) = 8
Et faire de meme pour le restant ?
2) Comment faire une sauvegarde en fichier *.txt de ce meme tableau à dimensions multiples, avec comme separateur des valeurs le point virgule et un retour à la ligne , du style :
124;1;22;125;456;8
121,1,26,842;455;19
...
Merci de toute infos.
@+
Tri dans tableau à dimensions multiples & sauvegarde
Bonjour
Soft modifié j'avais oublié la question sauvegarde !
Voilà une manière de proceder, mais désolé je n'ai pas eu le temps de commenter :
Le sytème est Le même pour 1, 5, 1000 ou 23598 lignes
ici j'ai pri 4 lignes pour verifier facilement le programme
Soft modifié j'avais oublié la question sauvegarde !
Voilà une manière de proceder, mais désolé je n'ai pas eu le temps de commenter :
Le sytème est Le même pour 1, 5, 1000 ou 23598 lignes
ici j'ai pri 4 lignes pour verifier facilement le programme
Code : Tout sélectionner
Global NbrLigne = 4
RandomSeed(5)
Global Dim Tableau.l(5,NbrLigne-1)
Structure Tab
Element1.l
Element2.l
Element3.l
Element4.l
Element5.l
EndStructure
Procedure ExempleRemplissage()
For n=0 To NbrLigne-1
Tableau(1,n)= n :
Tableau(2,n)=10-n
Tableau(3,n)=Random(100)
Tableau(4,n)=10+n
Tableau(5,n)=Random(200)
Next
EndProcedure
Procedure affiche()
For n=0 To NbrLigne-1
Debug Tableau(1,n)
Debug Tableau(2,n)
Debug Tableau(3,n)
Debug Tableau(4,n)
Debug Tableau(5,n)
Debug " "
Next
EndProcedure
Procedure Trie(offset,Sens)
NewList TriTab.Tab()
For n=0 To NbrLigne-1
AddElement(TriTab())
TriTab()\Element1 = Tableau(1,n)
TriTab()\Element2 = Tableau(2,n)
TriTab()\Element3 = Tableau(3,n)
TriTab()\Element4 = Tableau(4,n)
TriTab()\Element5 = Tableau(5,n)
Next
; trie sur la troisième colonne croissant :
SortStructuredList(TriTab(), Sens, offset, #PB_Sort_Long)
n=0
ForEach TriTab()
Tableau(1,n) = TriTab()\Element1
Tableau(2,n) = TriTab()\Element2
Tableau(3,n) = TriTab()\Element3
Tableau(4,n) = TriTab()\Element4
Tableau(5,n) = TriTab()\Element5
n+1
Next
EndProcedure
Procedure Sauve(File.s)
CreateFile(1,File)
For n=0 To NbrLigne-1
WriteStringN(1,Str(Tableau(1,n))+";"+Str(Tableau(2,n))+";"+Str(Tableau(3,n))+";"+Str(Tableau(4,n))+";"+Str(Tableau(5,n)))
Next
CloseFile(1)
EndProcedure
ExempleRemplissage()
affiche()
Sauve("c:\TrieNon.txt")
Debug "Trié sur le troisième élement croissant"
Trie(OffsetOf(Tab\Element3),0)
affiche()
Sauve("c:\TrieEl3C.txt")
Debug "Trié sur le cinquième élement decroissant"
Trie(OffsetOf(Tab\Element5),1)
affiche()
Sauve("c:\TrieEl5D.txt")