Bonjour,
Je suis actuellement en stage et j'ai une problématique. Je possède un fichier texte de 39238 ligne. Mon traitement sur ce fichier fonctionne très bien mais le temps d’exécution est énorme. Voila le code que j'utilise pour charger le fichier:
J'ai eu pour idée de réduire ce temps en partitionnant mon fichier mais je n'ai pas réussi a écrire un algorithme qui marche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 'Variable pour récuperer toute les lignes du fichier log Dim listeLigne As IEnumerable(Of String) 'On récupere toute les ligne du fichier listeLigne = File.ReadLines(chemin)
Voila ce que j'ai actuellement :
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
30
31
32
33 'DECLARER un lecteur de fichier Dim monlecteur As StreamReader monlecteur = StreamReader.Null 'DECLARER une collection pour les lignes du fichier Dim meslignes As New ArrayList Try 'cheminCompletFichier est le chemin complet du fichier à lire monlecteur = New StreamReader(cheminCompletFichier) With monlecteur 'POSITIONNER le flux au début du fichier .BaseStream.Seek(0, SeekOrigin.Begin) .BaseStream.Seek(100, SeekOrigin.End) .BaseStream.WriteTimeout = 5000 'TANT QUE le lecteur a quelquechose à lire While (.Peek > 0) 'LIRE une ligne du fichier et l'ajouter à meslignes Console.WriteLine(.ReadLine) meslignes.Add(.ReadLine) End While End With Catch ex As Exception Debug.WriteLine(ex.ToString) Console.WriteLine(ex.Message) Finally 'FERMER le lecteur en tout etat de cause monlecteur.Close() End Try Return (meslignes) End Function
Partager