Using lecture As New IO.StreamReader("in.txt") Using ecriture As New IO.StreamWriter("out.txt") Dim ligne() As String = lecture.ReadToEnd.Split(New String() {"debut", "fin"}, StringSplitOptions.RemoveEmptyEntries) For i As Integer = 1 To ligne.Length - 1 Step 2 ecriture.WriteLine(ligne(i)) Next End Using End Using
Accueil > Forum > Visual Basic 6
Si c'est faisable en VB.net c'est l'ideal
sinon on m'as conseillé de chercher s'il existe une ligne de code sous Shell
Private Sub Proceed(ByVal pathfilein As String, ByVal pathfileout As String) Dim listin As New List(Of String) Dim listout As New List(Of String) Dim flag As Boolean Try flag = False listin = System.IO.File.ReadAllLines(pathfilein).ToList For iter As Int32 = 0 To listin.Count - 1 If listin(iter).StartsWith("début") Then flag = True End If If flag Then listout.Add(listin(iter)) End If If listin(iter).EndsWith("fin") And Not listin(iter + 1).StartsWith("début") Then flag = False End If Next IO.File.WriteAllLines(pathfileout, listout.ToArray) Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionFor iter As Int32 = 0 To listin.Count - 1 ça parait logique pour parcourir le fichier
je me rend compte d'une autre condition
Private Sub Proceed(ByVal pathfilein As String, ByVal pathfileout As String) Dim listin As New List(Of String) Dim listout As New List(Of String) Dim flag As Boolean Try flag = False listin = System.IO.File.ReadAllLines(pathfilein).ToList For iter As Int32 = 0 To listin.Count - 1 If listin(iter).StartsWith("début") Then flag = True End If If flag Then listout.Add(listin(iter)) End If If listin(iter).EndsWith("fin") AndAlso (iter + 1) < listin.Count AndAlso Not listin(iter + 1).StartsWith("début") Then flag = False End If Next IO.File.WriteAllLines(pathfileout, listout.ToArray) Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub
Dim test As String = "salut debut valeur 1 fin blabla debut valeur 2 et 3 fin bla blaaaa debut valeur 1+2+3 fin sdfhsfd " Dim tableau As String() = test.Split(New String() {"debut", "fin"}, StringSplitOptions.RemoveEmptyEntries) 'affichage For i As Integer = 0 To tableau.Length - 1 If i Mod 2 = 1 Then Debug.Print(tableau(i)) End If Next
Même avec l'exemple que tu viens de donner (en te "rendant compte d'une autre condition") : les choses ne sont toujours pas vraiment claires ni précises/complètes. J'attends la fin de ta réflexion pour te démontrer cette imprécision.
Forum > Visual Basic 6