Bonjour, Bonsoir ou bonne nuit

Avec le code ci-dessous, je lis un fichier texte placé ds le même répertoire que le script.

J’aimerais qu’après le traitement les modifications soient écrites :
1- Soit dans un autre fichier texte tout en empêchant l’écrasement du fichier source et l’utilisation du même nom.
2- Soit en empêchant l’enregistrement de ce fichier modifié "le fermer après exploitation sans l’enregistrer".

Avez-vous une idée ?

PS: mon but est de protéger le fichier source contre la modification depuis le script.

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
41
42
43
44
Option Explicit
 
Function searchReplaceFile(File,StringSearch,StringReplace)
 
	Dim FileSystemObject
 
	Set FileSystemObject = CreateObject("Scripting.FileSystemObject")
 
	if FileSystemObject.FileExists(File) = true Then
 
		Dim oRegEx, MyFile, sStream, sNewStream
 
		Set oRegEx = New RegExp
 
		oRegEx.Global = True
		oRegEx.Pattern = StringSearch
 
		Set MyFile = FileSystemObject.OpenTextFile(File,1)
 
		sStream = MyFile.ReadAll
		MyFile.Close
 
		sNewStream = oRegEx.Replace(sStream,StringReplace)
 
		if InStr(sNewStream,StringReplace) = true Then 
			sNewStream = Replace(sNewStream,StringReplace,1,1) 
		end if
 
		Set MyFile = FileSystemObject.OpenTextFile(File,2,true)
		MyFile.Write sNewStream
	 	MyFile.Close
		MsgBox "Modification terminé",vbInformation,"Succès"
	else
		MsgBox "Le fichier source est introuvable",Vbcritical,"Erreur"
	end if
end Function
 
Dim DossProg, MonFichierTxt, StringReplaceValue 
 
DossProg = replace(WScript.ScriptFullName,WScript.ScriptName,"")
MonFichierTxt = DossProg & "fichier.txt"
 
StringReplaceValue = InputBox ("Entrer l'identifiant de messagerie.","My messenger")
searchReplaceFile (MonFichierTxt),"prenom.nom@hotmail.com",(StringReplaceValue & "@monsite.org")