Supprimer des lignes de text

bobjosse Messages postés 15 Statut Membre -  
 bobjosse -
Bonjour,
J'ai un fichier texte composé de 518360 lignes de brèves phrases.
Je voudrais supprimer par une procédure automatique toutes les lignes commençant par XXXX ou par ZZZZ. Je dois avoir 76000 lignes dans ce cas. Je peux mettre ce texte dans un tableur si besoin.
Un colistier aurait-il la solution ?
Merci à vous. Bien cordialement
Bob
Configuration: Mac OS X
Firefox 3.0.10
Texedit, Word, Excel,

6 réponses

  1. qmike Messages postés 1599 Date d'inscription   Statut Membre Dernière intervention   594
     
    bonjour
    Inspires ton de ca
    Sub Sup_OU()
    Dim rcel As Range
    Range("A1").Select
    Selection.CurrentRegion.Select
    For Each rcel In Selection
    If Left(rcel.Value, 4) = "ZZZZ" Then
    rcel.EntireRow.Delete
    End If
    Next rcel
    End Sub
    0
  2. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    Bonjour ,

    comme ton fichier et un peu grand....518360 lignes

    je propose de procéder comme ça.

    dans un module excel copie ce code
    il ouvrira le fichier texte choisi et écrira un autre épuré en sortie.
    (pas de risque de perdre la source.)

    Sub Supp_Ligne()

    Dim I As Integer
    Dim TextLine As String

    FichierSortieTXT = "C:\Data\fichier2.txt" 'change ici le chemin le nom que tu souhaite en sortie
    Nom_Fichier = Application.GetOpenFilename ' ici tu sélectionne le fichier
    If Nom_Fichier = "Faux" Then Exit Sub
    If VarType(Nom_Fichier) = vbBoolean Then Exit Sub ' (annulation)

    Open Nom_Fichier For Input As #1
    Open FichierSortieTXT For Append As #2 ' ouvre le fichier en ajout

    Do While Not EOF(1) ' tant que l'on est pas à la fin du fichier

    I = I + 1
    Line Input #1, TextLine
    If Left(TextLine, 4) = "ZZZZ" Or Left(TextLine, 4) = "XXXX" Then

    'on fait rien
    Else
    'la ligne ne commence pas par XXXXX ou ZZZZZ : je copie dans le nouveau fichier

    Print #2, TextLine ' écriture de la ligne
    End If

    Loop

    Close #1
    Close #2
    s = MsgBox("Boulot fini!!!!", vbOKOnly, "Fin")
    End Sub
    0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    Sur Mac OS X, tu as accès à la comande sed ?
    sed '/^XXXX/d;/^ZZZZ/d' fichier.txt > nouveau.txt
    0
  4. bobjosse
     
    dubcek a écrit
    "Sur Mac OS X, tu as accès à la comande sed ?"
    je suis un utilisateur "superficiel". Je n'ai jamais utilisé de commandes. Comment puis-je vérifier si j'ai accès à cette commande ?
    Merci. Cordialement
    Bob
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    je ne connais pas mac, mais y a-t-il, comme Windows, un mode ligne de commande (shell ou terminal) où on peut taper des commandes ?
    0
  7. bobjosse
     
    re,
    oui, j'ai un mode terminal, jamais utilisé à ce jour, mais je suis disposé à le faire.
    cordialement. Bob
    0