VBScript - Modification d'un fichier par script

VBScript - Modification d'un fichier par script - VB/VBA/VBS - Programmation

Marsh Posté le 19-10-2005 à 15:35:06    

Bonjour,
 
Mon but est de modifier un fichier (C:\Export.txt ) de façon automatique.
Je souhaite remplacer une chaine de caractère plusieurs fois dans ce fichier.
Mon script fonctionne bien mais lorsqu'il s'agit d'un gros fichier, rien n'est modifié.
 
Source:
************************************************
Const ForReading = 1
Const ForWriting = 2
 
Set objFSO = CreateObject("Scripting.FileSystemObject" )
Set objFile = objFSO.OpenTextFile("C:\Export.txt", ForReading)
 
strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, "Valeur1" , "Valeur2" )
 
Set objFile = objFSO.OpenTextFile("C:\Export.txt", ForWriting)
objFile.WriteLine strNewText
objFile.Close
 
************************************************
 
 
Si quelqu'un connait un autre moyen ou pourquoi cela ne fonctionne pas avec un gros fichier.
 
CDt.
Vincent.

Reply

Marsh Posté le 19-10-2005 à 15:35:06   

Reply

Marsh Posté le 19-10-2005 à 17:03:34    

Précisions:
 
En fait, Je précise que rien est modifié, ce n'est pas le cas.
Ce script change des lignes en caractère Blanc, le tout précédé d'une lettre.
 
Est-ce que quelqu'un connait un lexique des fonctions VBS comme par exemple Replace( ou objFile.WriteLine.
 
Merci.
Vince

Reply

Marsh Posté le 19-10-2005 à 17:12:37    

:hello:  
La documentation est en ligne à http://msdn.microsoft.com/library/ [...] erence.asp
 
Dans l'aide sur readall, il est indiqué :

Citation :

For large files, using the ReadAll method wastes memory resources. Other techniques should be used to input a file, such as reading a file line by line.

:)  
 

Reply

Marsh Posté le 19-10-2005 à 19:52:58    

Merci,
 
En pour résoudre mon Pb en général, je dois m'attaquer a d'autres PB:
Le script fonctionne mais pas lorsque le fichier source est en Unicode.
Je dois a la main le transformer en fichier ANSI (avec Wordpad ou notes).
 
Je vais chercher d'autres moyens.
See You
vince

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed