Salut
Quelle sont les differentes (meilleurs ) methodes que le c# fournit pour l import de donnees texte ..mis a part le fait d ouvrir le fichier et de le lire ligne par ligne ...
Salut
Quelle sont les differentes (meilleurs ) methodes que le c# fournit pour l import de donnees texte ..mis a part le fait d ouvrir le fichier et de le lire ligne par ligne ...
ça dépend de ce que t'appelle données texte. Un fichier xml c'est aussi du texte et ça ne se lit pas ligne par ligne.
Non justement rien de "standard" ... des donnees texte formattees d une certaine facon ...
Ba tout dépend du formattage... c'est toujours pareil.
En plus il existe une méthode pour lire la totalité du fichier texte et le mettre en mémoire en une seule fois dans une grosse chaine... a partir de là tout traitement sur la chaine est envisageable...
Un automate de parsing par exemple (si c'est de la compil qui te faut ...)
Moi ce que j'adore faire c'est :
Pourquoi faire simple (sr.ReadLine()) quand on peut faire compliqué (ci-dessus)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 StreamReader sr = File.OpentText(path); foreach (string s in sr.ReadToEnd().Split(System.Environment.NewLine)) { FonctionTraimentUneLigne(s); } sr.Close();
Non sérieusement, le ReadToEnd te permet de récupérer tout le contenu du fichier, te permettant ainsi de fermer le fichier (et libérer la ressource) tout de suite après et de travailler sur le contenu seulement après.
Si tu récupères des informations d'un fichier utilisé par plusieurs thread ou programme c'est pratique.
Le ReadLine est moins gourment en mémoire mais ne permet pas la libération du fichier tout de suite, il faut d'abord fiare les opérations de traitements sur les lignes.
Bon ne pas oublier que les opérations qui entraine l'ouverture de flux peuvent être dangereux, il ne faut pas oublier de fermer ces flux. Un exemple, dénièrement j'ai réalisé une fonction dans un prog qui "s'amusé" à ouvrir les fichiers logs créés par un autre programme, et de copier leur contenu dans un même buffer et ensuite de copier ce buffer dans un fichier unique.
Au début j'avais trois fichier de moins d'un 1 MO alors cela allez. Mais pour une raison que je n'expliquerais pas (trop long) une 50 aines de fichiers logs furent générés et chacun avais une taille d'environ 16 MO.
J'ai explosé ma mémoire . En lisant ligne par ligne chaque fichier et en écrivant chaque ligne dans un autre fichier grâce à appendtext (méthode de file) je résoud mon problème.
En gros il y a être barbare ou soft avec la machine. (Je suis un peu trop de la première catégorie avec ma machine )
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager