IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Supprimer ligne dans fichier Txt


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 9
    Par défaut Supprimer ligne dans fichier Txt
    Bonjour,

    je désire rechercher dans un fichier txt le mot "teste" et supprimer la ligne entière (et non pas le mot !)

    Le début de code ci-dessous me permet de trouver le mot "teste" mais, impossible à supprimer la ligne !

    Il y a t'il une commande pour supprimer une ligne complète ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
     
    Using flux As New StreamReader("c:/essai.txt")
     
                Dim Compteur As Integer = 0
                While (Not flux.EndOfStream)
                    Compteur += 1
                    Dim ligne As String = flux.ReadLine
                    If (ligne.Contains("teste")) Then
     
     
    End If
    End While
    End Using
    End Sub

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    un fichier n'est pas quelque de modifiable en soi, il faut le lire et l'écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    dim lines as list(of string) = system.io.file.readalllines("x:\fichier.txt").tolist
    for i as integer = 0 to lines.count -1
      if lines(i).contains("teste") then 
        lines.removeat(i)
      end if
    next
    system.io.file.writealllines(lines.toarray)
    ca peut aussi s'écrire en une ligne sur le framework 3.5 (le .ToList fait aussi parti du 3.5 remarque ...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     System.IO.File.WriteAllLines("x:\fichier.txt", _
                        System.IO.File.ReadAllLines("x:\fichier.txt").Where(New Func(Of String, Boolean)(Function(s As String) (Not s.Contains("teste")))) _
                                        )
    le code est équivalent, c'est juste que la boucle est remplacée par une implémentation en linq avec une fonction anonyme
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre averti
    Inscrit en
    Septembre 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 9
    Par défaut
    ok, super, merci. cela change totalement mon code.

  4. #4
    Membre confirmé Avatar de aus3004
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 74
    Par défaut
    Salut tout le monde,

    j'aimerais juste savoir si ce code fonctionne avec une boucle comprennant plusieurs fichiers.
    Voila mon code, j'ai une erreur :
    L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection. Nom du paramètre : index
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    For Each files In My.Computer.FileSystem.GetFiles("C:\dossier", FileIO.SearchOption.SearchAllSubDirectories, "*txt")
                    Dim lines As List(Of String) = System.IO.File.ReadAllLines(files).ToList
                    For i As Integer = 0 To lines.Count - 1
                        If lines(i).Contains("texte") Then
                            lines.RemoveAt(i)
                        End If
                    Next
                Next
    Si vous avez une idée, ca serait sympat de m'aider.
    bon dev

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    oui, sauf qu'avant le 2ème for il faut mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if lines.count = 0 then continue for
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre confirmé Avatar de aus3004
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 74
    Par défaut
    Merci d'avoir répondu !
    Je viens de tester et il y a la même erreur :
    L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection. Nom du paramètre : index
    Sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If lines(i).Contains(TextBox5.Text) Then

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Supprimer Ligne dans Fichier Txt
    Par meumeu73.1 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/11/2012, 13h20
  2. modifier une ligne dans fichier txt
    Par mvc_dev dans le forum C#
    Réponses: 6
    Dernier message: 14/05/2012, 13h23
  3. [VB.Net]Compter le nb de ligne dans fichier txt
    Par papy75 dans le forum Windows Forms
    Réponses: 20
    Dernier message: 15/12/2011, 15h30
  4. Supprimer lignes dans fichier texte
    Par dr_octopus74 dans le forum VBScript
    Réponses: 1
    Dernier message: 20/02/2007, 17h54
  5. prb retour a la ligne dans fichier txt telecharge avec php
    Par supersonicblonde dans le forum Langage
    Réponses: 3
    Dernier message: 08/06/2006, 14h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo