Bonjour,
Je voudrais savoir comment faire pour insérer une ligne avant ou après une ligne contenant une certaine chaîne de caractères.
Merci d'avance
Bonjour,
Je voudrais savoir comment faire pour insérer une ligne avant ou après une ligne contenant une certaine chaîne de caractères.
Merci d'avance
Merci je viens de regarder les différents liens et je ne vois pas en quoi ça peut me servir pour mon problème ...
L'idée est peut-être celle exposée dans ce post suite à une discussion que tu as créée
dans l'autre discussion je parle du remplacement d'une chaîne de caractère et non de l'insertion d'une ligne entre deux autres...
Pourtant l'idée est la même :
1 - Première partie du fichier txt1 comportant tout le texte juste avant le point d'insertion
2 - La 2ème txt2 le reste du fichier.
On aura au final :
Code : Sélectionner tout - Visualiser dans une fenêtre à part txtfinal = txt1 + texte à insérer + txt2
D'accord mais le problème est qu'avec le code suivant j'ai l'erreur "Mode fichier incorrect" :
L'erreur est à la ligne 30 du code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 If insert = 1 and present = 0 and remp = 0 Then MsgBox "Ajout du numéro " & numero & " au contact " & prenom & " " & nom Set vfcfile = fso.OpenTextFile(vfc,2,true) do while vfcfile.AtEndOfStream=false textvfc = vfcfile.ReadLine If Instr(textvfc,nom) <> 0 Then set types = new regexp types.pattern = "^06{1}[0-9]{8}" types.Global = false set typenum = types.execute(numero) If typenum.count <> 0 Then nouveau = textvfc & chr(10) & "TEL;TYPE=CELL,VOICE:" & numero insertion = Replace(textvfc,textvfc,nouveau) vfcfile.write(insertion) else nouveau = textvfc & chr(10) & "TEL;TYPE=WORK,VOICE:" & numero insertion = Replace(textvfc,textvfc,nouveau) vfcfile.write(insertion) End If End If loop vfcfile.close else If present = 1 Then MsgBox "Le numéro " & numero & " pour " & prenom & " " & nom & " existe déjà." else If remp = 1 Then Set vfcfile = fso.OpenTextFile(vfc,2,true) do while vfcfile.AtEndOfStream=false textvfc = vfcfile.ReadLine If Instr(textvfc,numero) = 0 Then insertion = Replace(textvfc,right(textvfc,10),numero) vfcfile.write(insertion) End If loop vfcfile.close End If End If End If
Ca me met la même erreur avec le même code mais comme ceci :
La ligne 2 est la ligne où se produit l'erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Set vfcfile = fso.OpenTextFile(vfc,2,true) do while vfcfile.AtEndOfStream=false textvfc = vfcfile.ReadLine If insert = 1 and present = 0 and remp = 0 Then MsgBox "Ajout du numéro " & numero & " au contact " & prenom & " " & nom If Instr(textvfc,nom) <> 0 Then set types = new regexp types.pattern = "^06{1}[0-9]{8}" types.Global = false set typenum = types.execute(numero) If typenum.count <> 0 Then nouveau = textvfc & chr(10) & "TEL;TYPE=CELL,VOICE:" & numero insertion = Replace(textvfc,textvfc,nouveau) vfcfile.write(insertion) else nouveau = textvfc & chr(10) & "TEL;TYPE=WORK,VOICE:" & numero insertion = Replace(textvfc,textvfc,nouveau) vfcfile.write(insertion) End If End If else If present = 1 Then MsgBox "Le numéro " & numero & " pour " & prenom & " " & nom & " existe déjà." else If remp = 1 Then If Instr(textvfc,numero) = 0 Then insertion = Replace(textvfc,right(textvfc,10),numero) vfcfile.write(insertion) End If End If End If End If loop vfcfile.close
Tu ne peux pas écrire dans fichier ouvert en lecture et inversement.
Il faut ouvrir le fichier en lecture(ForReading=2), après en avoir récupéré le contenu, on le ferme puis on l'ouvre en écriture(ForWriting=1) ensuite on le ferme pour l'enregistrer.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager