Bonjour à tous,
je suis en train d'écrire une macro qui me permettra de trier des données contenues dans un fichier texte de trois colonnes et n lignes (N pouvant aller jusqu'à 20 millions).
Pour le moment, je travaille avec un fichier de test et je n'arrive pas au résultat escompté (mon fichier a 40000 lignes et fait 2Mo, le fichier de sorti fait 150Mo et a des millions de lignes !).
J'utilise un "shellsort" dont voici le code :
Ce que je souhaiterais c'est avoir un nouveau fichier texte avec mes trois colonnes, et les x classés de façon croissante (avec les y et z correspondants).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 Public Sub ShellSort() Dim I As Long, J As Long, H As Long, V As Long, loBound As Long, upBound As Long loBound = LBound(Données(), 1) upBound = UBound(Données(), 1) H = loBound Do H = 3 * H + 1 Loop Until H > upBound Do H = H / 3 For I = H + 1 To upBound V = Données(I, 2) J = I Do While Données(J - H, 1) > V Données(J, 2) = Données(J - H, 1) J = J - H If J <= H Then Exit Do End If Loop Données(J, 2) = V Write #1, Données(J, 1), Données(J, 2), Données(J, 3) Next I Loop Until H = loBound End Sub
Merci de votre aide.
Max
Partager