For Each files In My.Computer.FileSystem.GetFiles(TextBox1.Text, FileIO.SearchOption.SearchAllSubDirectories, "*.txt") '' J'ai remis le point entre * et txt Dim lines As List(Of String) = System.IO.File.ReadAllLines(files).ToList If lines.Count = 0 Then Continue For For i = lines.Count - 1 To 0 Step -1 If lines(i).Contains("toto") Then lines.RemoveAt(i) End If Next System.IO.File.WriteAllLines(files, lines.ToArray) Next
For i As Integer = 0 To lines.Count - 1 If lines(i).Contains("toto") Then lines.RemoveAt(i) End If Next
Soit un If pour faire un Exit For si i>Lines.count-1
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionMerci raffika, j'ai essayé la soluce n°1 de NHenri mais rien ne ce passe !
For Each files In My.Computer.FileSystem.GetFiles(TextBox1.Text, FileIO.SearchOption.SearchAllSubDirectories, "*.txt") '' J'ai remis le point entre * et txt Dim lines As List(Of String) = System.IO.File.ReadAllLines(files).ToList If lines.Count = 0 Then Continue For For i = lines.Count - 1 To 0 Step -1 If lines(i).Contains("toto") Then lines.RemoveAt(i) End If Next System.IO.File.WriteAllLines(TextBox1.Text, lines) '? Next
For Each files In My.Computer.FileSystem.GetFiles(TextBox1.Text, FileIO.SearchOption.SearchAllSubDirectories, "*.txt") Dim lines As List(Of String) = System.IO.File.ReadAllLines(files).ToList If lines.Count = 0 Then Continue For If lines.Count = 0 Then Continue For For i = lines.Count - 1 To 0 Step -1 If lines(i).Contains("toto") Then lines.RemoveAt(i) End If Next System.IO.File.WriteAllLines(files, lines) Next
Une valeur de type 'System.Collections.Generic.List(Of String)' ne peut pas être convertie en 'Tableau à 1 dimension(s) de String'.
For Each files In My.Computer.FileSystem.GetFiles(TextBox1.Text, FileIO.SearchOption.SearchAllSubDirectories, "*.txt") '' J'ai remis le point entre * et txt Dim lines As List(Of String) = System.IO.File.ReadAllLines(files).ToList If lines.Count = 0 Then Continue For For i = lines.Count - 1 To 0 Step -1 If lines(i).Contains("toto") Then lines.RemoveAt(i) End If Next System.IO.File.WriteAllLines(files, lines) Next
Dim files(), lines() As String Dim output As New List(Of String) Try ' Récupère les chemins des fichiers files = IO.Directory.GetFiles(TextBox1.Text, "*txt", IO.SearchOption.AllDirectories) For Each file In files ' Vide la liste output.Clear() ' Récupère les lignes du fichier lines = IO.File.ReadAllLines(file) For Each line In lines ' Si la ligne ne contient pas 'toto' on l'ajoute à la liste If Not line.Contains("toto") Then output.Add(line) End If Next ' Ne réécrit le fichier que si le contenu à changé ' autrement dit si son nombre de ligne a baissé If output.Count < lines.Length Then ' Je réécris dans le même fichier, si tu ne le souhaites pas ' pense à changer le 1er paramètre System.IO.File.WriteAllLines(file, output) End If Next Catch ex As Exception ' En cas de problème (si un fichier est utilisé par une autre application par exemple) MessageBox.Show(ex.Message, "Une erreur est survenue") End Try
For Each files In My.Computer.FileSystem.GetFiles(TextBox1.Text, FileIO.SearchOption.SearchAllSubDirectories, "*.txt") '' J'ai remis le point entre * et txt Dim lines As List(Of String) = System.IO.File.ReadAllLines(files).ToList If lines.Count = 0 Then Continue For For i = lines.Count - 1 To 0 Step -1 If lines(i).Contains("toto") Then lines.RemoveAt(i) End If Next System.IO.File.WriteAllLines(files, lines) Next
Une valeur de type 'System.Collections.Generic.List(Of String)' ne peut pas être convertie en 'Tableau à 1 dimension(s) de String'.
Dim files(), lines() As String Dim output As New List(Of String) ' Récupère les chemins des fichiers files = IO.Directory.GetFiles(TextBox1.Text, "*txt", IO.SearchOption.AllDirectories) For Each file In files ' Vide la liste output.Clear() ' Récupère les lignes du fichier lines = IO.File.ReadAllLines(file) For Each line In lines ' Si la ligne ne contient pas 'toto' on l'ajoute à la liste If Not line.Contains("toto") Then output.Add(line) End If Next ' Ne réécrit le fichier que si le contenu à changé ' autrement dit si son nombre de ligne a baissé If output.Count < lines.Length Then ' Je réécris dans le même fichier, si tu ne le souhaites pas ' pense à changer le 1er paramètre System.IO.File.WriteAllLines(file, output) End If Next
Une valeur de type 'System.Collections.Generic.List(Of String)' ne peut pas être convertie en 'Tableau à 1 dimension(s) de String'.
For Each files In My.Computer.FileSystem.GetFiles(TextBox1.Text, FileIO.SearchOption.SearchAllSubDirectories, "*.txt") Dim lines As List(Of String) = System.IO.File.ReadAllLines(files).ToList If lines.Count = 0 Then Continue For If lines.Count = 0 Then Continue For For i = lines.Count - 1 To 0 Step -1 If lines(i).Contains("toto") Then lines.RemoveAt(i) End If Next Dim resultat As String = "" '' On crée une variable string For i = 0 To lines.Count - 1 resultat &= lines(i) & Environment.NewLine '' on met les lignes de 'lines' une par unes suivies de '' Environment.Newline (retour à la ligne) Next '' et on écrit le fichier selon la méthode Writealltext '' qui écrit la string resultat dans le fichier files System.IO.File.WriteAllText(files, resultat) Next