Supprimer lignes fichier txt

jv -  
Normad Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Dans un fichier texte de 6 000 000 de lignes je voudrais supprimer les lignes d'un champ contenant les années 2010, 2011,et 2012 .
Merci de votre aide.

2 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,
    Si les annees ne sont qu'a un seul endroit, vous pouvez la commande DOS Findstr

    ouvrir une invite de commande
    placez vous dans le repertoire du fichier
    tapez la ligne suivante en mettant le nom du fichier a lire

    findstr/v "2010 2011 2012" fichier.txt > result.txt
    0
  2. Normad Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   40
     
    Bonjour,
    Sinon, en lisant ligne après ligne et en réécrivant un deuxième fichier, ci-dessous une base de code non testée (pas le temps de créer des fichiers pour tester) :

    Private Sub TraitementFichier()
        Dim Fichier As String, F As Integer, F2 As Integer, strLine As String
        Fichier = "C:\chemin\nomfichier.txt"
        FichierCopy = "C:\chemin\copyfichier.txt"
        
        If Dir(Fichier) = "" Then
            MsgBox "le fichier " & Fichier & " n'existe pas", vbCritical
            Exit Sub
        End If
        F = FreeFile
        F2 = FreeFile
        
        
        Open Fichier For Input As #F Len = 1
        
            Open FichierCopy For Append As #F2
        
        Do Until EOF(F)
            
            Line Input #F, strLine
            If InStr(1, strLine, "2010") = 0 _
            And InStr(1, strLine, "2011") = 0 _
            And InStr(1, strLine, "2012") = 0 Then
                
                Print #F2, strLine
            
            End If
        
        Loop
        Close #F
        Close #F2
    End Sub
    0