Compter le nombre de lignes dans un fichier texte de bas en haut.
kikibodel
Messages postés16Date d'inscriptionmercredi 17 mai 2006StatutMembreDernière intervention 5 juin 2008
-
2 avril 2008 à 01:39
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014
-
5 avril 2008 à 19:08
Bonjour,
J'aimerais trouver un programme ( C sharp ) qui me permet de compter le nombre de lignes dans un fichier texte de BAS en HAUT et non de haut en bas comme on le faerais habituellement.
Le but de mon programme est de recopier les 720 DERNIERES lignes de ce fichier dans un autre fichier texte.
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 5 avril 2008 à 19:08
Salut,
Si on parle de très gros fichiers, ça peut être handicapant.
Enonçont le problème différemment : il s'agit ici de copier toutes les données situées entre le 721ème caractère LF en partant de la fin et la fin du fichier.
Pas besoin de lire 2 fois le fichier pour ça, mais juste de lire 2 fois la fin :-)
Code plus compliqué mais si le fichier source fait plusieurs Go, ça fait pas mal d'I/O d'économie.
En cas d'utilisation de FileStream, garder à l'esprit l'encodage du fichier : si UTF16LE, il ne s'agit pas de garder la moitié du caractère LF en démarrant la copie (si UTF32LE, 3/4 du caractère).
File.WriteAllLines(destFile, linesToCopy);
}
Autrement, si le fichier source est très volumineux et la mémoire limitée, il te faudra lire 2 fois le fichier. Une fois pour connaître le nombre de ligne, et une fois pour prendre que les lignes voulues.
Amicalement, SharpMao
"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)