Supprimer des lignes de text
bobjosse
Messages postés
15
Statut
Membre
-
bobjosse -
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
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
A voir également:
- Supprimer des lignes de text
- Supprimer rond bleu whatsapp - Guide
- Impossible de supprimer une page word - Guide
- Impossible de supprimer un fichier - Guide
- Supprimer pub youtube - Accueil - Streaming
- Partager des photos en ligne - Guide
6 réponses
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
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
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
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
hello
Sur Mac OS X, tu as accès à la comande sed ?
sed '/^XXXX/d;/^ZZZZ/d' fichier.txt > nouveau.txt
Sur Mac OS X, tu as accès à la comande sed ?
sed '/^XXXX/d;/^ZZZZ/d' fichier.txt > nouveau.txt
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
"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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question