Const ForReading 1, ForWriting 2 Dim fso, WShShell, fic_depart, fic_tmp, fic_final, sFile, lect, ecr Dim Var_depart, Var_tmp, Var_final, Texte, categorie Set fso = CreateObject("Scripting.FileSystemObject") Set WSHShell = WScript.CreateObject("WScript.Shell") fic_depart = "\\monserveur\fichier1.txt" fic_tmp = "\\monserveur\fichiertmp.txt" fic_final = "\\monserveur\fichier2.txt" 'Saisie de la catégorie recherchée Rech_cat = InputBox("Catégorie recherchée ?","Saisie") 'Lecture du fichier de départ Set Var_depart = fso.OpenTextFile(fic_depart,ForReading) sFile = Var_depart.ReadAll Set oRegEx = New RegExp oRegEx.Pattern = "155 \d{11}" oRegEx.Global=True Set Matches = oRegEx.Execute(sFile) For Each Match in Matches sID = sID & vbCrLf & Match.Value sID = Replace(sID, " ",";") Next 'Ecriture du fichier temporaire Set Var_tmp = fso.CreateTextFile(fic_tmp) With Var_tmp .writeLine sID End with Var_depart.close Var_tmp.close 'Lecture du fichier temporaire et écriture du fichier final Set Var_final = fso.CreateTextFile(Fic_final) : Var_Final.close Set lect = fso.OpenTextFile(Fic_tmp, ForReading) Set ecr = fso.OpenTextFile(Fic_final, ForWriting) While Not lect.AtEndOfStream Texte = lect.ReadLine Texte = Trim(Texte) categorie = Mid(Texte, 7, 1) if categorie = Rech_cat Then ecr.Writeline Texte End if Wend lect.Close ecr.Close 'Affichage du fichier final if fso.FileExists(fic_tmp) Then fso.DeleteFile Fic_tmp, True 'Efface fichier temporaire WSHShell.Run ("C:\WINDOWS\system32\notepad.exe " & fic_final) 'Ouvre fichier final avec notepad WScript.Quit
Dim FSO, File, Match, Categorie Set FSO = CreateObject("Scripting.FileSystemObject") categorie = 3 Const ForReading = 1 Set File = FSO.OpenTextFile("a.txt", ForReading) sContenu = File.ReadAll File.close With New RegExp .Pattern = "^155;\d\d" & categorie & "\d{8}" .Global=True .Multiline=True Set File = FSO.CreateTextFile("b.txt") For Each Match in .Execute(sContenu) File.writeLine Match.Value Next File.close End with
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPrivate Sub Command1_Click() Open "D:\bof.txt" For Input As #1 Do While Not EOF(1) Line Input #1, toto If Mid(toto, 7, 1) = "3" Then MsgBox toto & " contient un 3 en 7ème position" Loop End Sub
ENTREPRISE 6 RUE DES ROSES 76000 MONEXEMPLE CEDEX TEL 0125635262 DANS TOUS VOS ECHANGES AVEC NOS EXEMPLES N'OMETTEZ PAS DE RAPPELER VOTRE IDENTIFIANT LE 19 JANVIER 2012 155 12345678998 MR DUPOND FREDERIC RUE MANU EXEMPLE 76150 MONEXEMPLE CREATION OU MODIFICATION dupond frederic - TEL : 0103030250 (0,118 E/MN) FAX :0152452552
Dim FSO, LeFichier, CheminNomFichier, sFile Set fso = CreateObject("Scripting.FileSystemObject") Set FSys = CreateObject("Scripting.FileSystemObject") Set MonFic = FSys.CreateTextFile("\\monserveur\fichier2.txt") categorie = Mid(sID, 7, 1) Const ForReading = 1 CheminNomFichier = "\\monserveur\fichier1.txt" Set LeFichier = fso.OpenTextFile(CheminNomFichier,ForReading) sFile = LeFichier.ReadAll Set oRegEx = New RegExp ' définition du pattern oRegEx.Pattern = "155 \d{11}" oRegEx.Global=True Set Matches = oRegEx.Execute(sFile) For Each Match in Matches sID = sID & vbCrLf & Match.Value sID = Replace(sID, " ",";") Next 'Pour écrire dans le fichier texte if categorie = "1" Then 'Valeur à modifier selon catégorie recherchée MonFic.writeLine (sID) End If Monfic.close With CreateObject("CDO.Message") .From="mail@site.fr" .To="mail@site.frr" .Subject="ID à utiliser" .TextBody="Voici les ID : " .AddAttachment("\\monserveur\fichier2.txt") .Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 .Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "serveurmail" .Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 .Configuration.Fields.Update On Error Resume Next .Send If Err Then MsgBox "Le message n'a pas pu être expédié." On Error GoTo 0 End With