Tri TxT / Suppresion / Remplacement Lignes TxT / VBS
Salut ProgElecT!
Je te remercie pour ta réactivité!
Quoi? UFT8 ? Je suis désolé je ne saurai te répondre! Je ne fais pas de Prog moi... (enfin là c'est juste du traitement de texte en vbs et un peu de vba c'est tout ^^)
C'est un fichier txt issu d'une console de conduite d'unité dans l'industrie, c'est une liste d'alarmes procédés. (c'est tout ce que je peux te dire ;))
Entre temps j'avais réussi à faire quelque chose mais c'était pas "propre" et j'avais pleins de lignes vides!
Du coup j'ai repris ta modif, j'ai ajouté ce que j'avais à ajouter pour finaliser mon tri et....... -> HOP! Magie Magie Magie et vos c'est du génie!
Super, je te remercie!
ps: je l'ai testé sur le fichier de 620 000 lignes et ça prends approximativement 1 à 2 min (ce qui largement assez rapide pour moi!) =) =) =)
Bref, ça faisait 2 jours que je galéré avec ce tri et grâce à ce topic "j'ai" (grâce à vous) réussi à trier mon fichier, j'ai plus qu'à l'envoyer balader sur excel avec bon coup de vba et tout sera parfait =)
MERCI MERCI MERCI !
Joris.
Code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
Option Explicit
Const Fichier = "C:\TestTriTxT.txt"
Dim fso
Dim oRegEx
Dim monFichier
Dim sStream
Dim sNewStream
Set fso = CreateObject("Scripting.FileSystemObject")
Set monFichier = fso.OpenTextFile(Fichier,1)
sStream = monFichier.ReadAll
monFichier.Close
Set oRegEx = New RegExp
oRegEx.IgnoreCase = True
oRegEx.Global = True
'supprime toutes les ligne contenant LigneCherche
oRegEx.Pattern = "(\n|^).*JOURNAL*[^\r]*"
sNewStream = oRegEx.Replace(sStream,"")
msgbox "Journal Fin."
'supprime toutes les ligne contenant LigneCherche
oRegEx.Pattern = "(\n|^).*JNLPRINT*[^\r]*"
sNewStream = oRegEx.Replace(sStream,"")
msgbox "JNLPRINT Fin."
'supprime les ACK
oRegEx.Pattern = "(\n|^).*ACK*[^\r]*"
sNewStream = oRegEx.Replace(sNewStream,"")
msgbox "ACK Fin."
'supprime les ACK
oRegEx.Pattern = "(\n|^).*RTN*[^\r]*"
sNewStream = oRegEx.Replace(sNewStream,"")
msgbox "RTN Fin."
'supprime les ACK
oRegEx.Pattern = ".*24$"
sNewStream = oRegEx.Replace(sNewStream,"")
msgbox "24 Fin."
'supprime les ACK
oRegEx.Pattern = ".*UNIT.*"
sNewStream = oRegEx.Replace(sNewStream,"")
msgbox "Unit Fin."
'supprime les ACK
oRegEx.Pattern = ".*PAGE.*"
sNewStream = oRegEx.Replace(sNewStream,"")
msgbox "PAGE Fin."
'supprime les signes inconnus
oRegEx.Pattern = "\n [\r]"
sNewStream = oRegEx.Replace(sNewStream,"")
msgbox " Fin."
'supprime les lignes de trait ----------
oRegEx.Pattern = "(\n|^)*-[^\r]*"
sNewStream = oRegEx.Replace(sNewStream,"")
msgbox "------ Fin."
'supprime les lignes vides
oRegEx.Pattern = "\n[\r]"
sNewStream = oRegEx.Replace(sNewStream,"")
msgbox "Lignes Vides Fin."
Set monFichier = fso.OpenTextFile(Fichier,2)
monFichier.Write sNewStream
monFichier.Close
msgbox "fin." |