Lire ligne par ligne un fichier utilisé par un autre processus [Résolu]

Drarig29 82 Messages postés jeudi 26 décembre 2013Date d'inscription 14 juin 2016 Dernière intervention - 13 déc. 2014 à 12:56 - Dernière réponse : cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention
- 13 déc. 2014 à 23:00
Bonjour, j'utilise en ce moment le code suivant pour lire un fichier ligne par ligne :

For Each Fichier As String In Directory.GetFiles("C:\Windows\DossierLogs")
      For Each line As String In File.ReadAllLines(Fichier)

      Next
Next


J'ai trouvé ce code sur internet pour lire un fichier (mais entièrement) utilisé par un autre processus, et le mettre dans une TextBox :

TextBox1.Clear
Dim CheminDuFichier As String = "C:\Windows\DossierLogs\text.log"
Dim sr As FileStream = New FileStream(CheminDuFichier, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)
sr = File.Open(CheminDuFichier, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)
Dim b(1024) As Byte
Dim temp As UTF8Encoding = New UTF8Encoding(True)
Dim text As String = ""

Do While sr.Read(b, 0, b.Length) > 0
      text += temp.GetString(b)
Loop

sr.Close()
TextBox1.Text = text


J'aimerais avoir un code qui a la même fonction que celui-ci (c'est-à-dire de lire un fichier utilisé par un autre processus) mais qui, au lieu de renvoyer tout le texte du fichier, le renvoyer ligne par ligne...

Merci d'avance !
Afficher la suite 

6 réponses

ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 13 déc. 2014 à 14:52
0
Merci
Bonjour,
Dès lors que tu sais lire dans une variable tout le contenu d'un fichier texte, rien ne t'empêche d'aclater cette variable (fonction split) et d'en lire les lignes une par une. Fonction split à lire dans MSDN, donc.
Drarig29 82 Messages postés jeudi 26 décembre 2013Date d'inscription 14 juin 2016 Dernière intervention - 13 déc. 2014 à 19:29
0
Merci
Ok et comment dois-je faire pour Split ligne par ligne ?
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 13/12/2014 à 19:51
0
Merci
Tu ouvres MSDN à la rubrique split.
Tu découvres que cette fonction te permet d' "éclater", par rapport à un séparateur (dans ton cas un retour à la ligne), toute chaîne de caractères (et donc ta chaîne lue "d'un seul coup", qui est le contenu de ton fichier texte).
Le résultat de cet "éclatement est un tableau (Array) dont chaque élément est une sous-chaîne (jusqu'au prochain retour charriot).
Tu lis les éléments de cet array un par un, dans une boucle For ... to ... next
En te rappelant que le premier élément d'un array est d'indice 0 et que le dernier est d'indice TestArray.Length - 1 où testarray est le nom que tu donnes à l'array obtenu par le Split.
Pas plus difficile que celà (si tu veux bien t'y mettre un peu).


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
Drarig29 82 Messages postés jeudi 26 décembre 2013Date d'inscription 14 juin 2016 Dernière intervention - 13 déc. 2014 à 20:11
0
Merci
Merci mais je savais cela. Ce que je te demande, c'est quel séparateur dois-je mettre pour Split le texte à chaque ligne.
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 13/12/2014 à 20:45
0
Merci
http://www.dotnetperls.com/newline-vbnetJe ne serais par ailleurs pas surpris (bien que ne pratiquant pas VB.Net) que File.ReadAllLines ne te retourne pas déjà, tout seul comme un grand) un array dont les éléments sont chacune de tes lignes ...

PS : je ne croyais pas si bien dire ! Je viens de regarder MSDN sur la toile (puisque je ne suis pas VB.Nettiste)
C'est bien un array déjà tout fait, qui t'est retourné par File.ReadAllLines
http://msdn.microsoft.com/en-us/library/system.io.file.readalllines%28v=vs.110%29.aspx
!!!
Question : quelle est donc la différence entre nous deux ?
Réponse : je consulte MSDN et toi non.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 13 déc. 2014 à 23:00
0
Merci
Bonjour

Je ne comprends pas ce que tu demandes
For Each Fichier As String In Directory.GetFiles("C:\Windows\DossierLogs")
For Each line As String In File.ReadAllLines(Fichier)

Next
Next


et que veux tu faire avec line ?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.