Utilisateur anonyme
-
13 déc. 2014 à 12:56
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 2019
-
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 !
A voir également:
Lire ligne par ligne un fichier utilisé par un autre processus
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 13 déc. 2014 à 14:52
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.
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
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