Page 1 sur 1
[R] Remplacement d'une chaine dans de nombreux fichiers
Posté : mar. 24 févr. 2009 11:56
par Yogui
Bonjour,
je n'arrive pas à finir mon script
la problèmatique est la suivante un site enregistrait des résultats dans des fichiers HTML. A l'ouverture de ces fichiers le site Web s'ouvrait en récupérant les infos.
Ce site web vient de changer d'adresse et demande de modifier 300 fichiers j'ai donc tenter un petit code mais il ne modifie qu'un seul fichier pouvez vous le corriger ?
► Afficher le texte
Code : Tout sélectionner
#include <File.au3>
Dim $Count
$search = FileFindFirstFile("*.html")
If $search = -1 Then
MsgBox(0, "erreur", "Aucun de fichier .html trouvé ")
Exit
EndIf
While 1
$Fic = FileFindNextFile($search)
If @error Then ExitLoop
$File = FileOpen($Fic, 0)
_funcremplace()
WEnd
Func _funcremplace()
While 1
$line = FileReadLine($File)
If @error = -1 Then ExitLoop
$Count = $Count + 1
If StringInStr($line, "aaaaaaaaaaaaaaaaaaaaa") Then
$line = StringReplace($line, "aaaaaaaaaaaaaaaaaaaaa", "ttttttttttttttttttttt")
FileClose($File)
_FileWriteToLine($Fic, $Count, $line, 1)
ExitLoop
EndIf
WEnd
FileClose($File)
EndFunc ;==>_funcremplace
exemple de fichier :
► Afficher le texte
<html>
<head>
<title>Enregistrement</title>
</head>
<body bgcolor="#ffffff">
<form action="
http://aaaaaaaaaaaaaaaaaaaaa" name="e" method="post">
<input type='hidden' name='qui' value=''>
<input type='hidden' name='typ' value='perso'>
Merci pour votre aide
Re: [..] Remplacement d'une chaine dans de nombreux fichiers
Posté : mar. 24 févr. 2009 13:46
par primax
Salut Yogui
Voila un bon debut de modif :
► Afficher le texte
Code : Tout sélectionner
#include <File.au3>
;Oublie pas de changer ceci
$dossieratraiter = "C:\Web"
FileChangeDir($dossieratraiter)
$search = FileFindFirstFile("*.html")
If $search = -1 Then
MsgBox(0, "erreur", "Aucun de fichier .html trouvé ")
Exit
EndIf
While 1
$Fic = FileFindNextFile($search)
If @error Then ExitLoop
_funcremplace($Fic)
WEnd
Exit
Func _funcremplace($sFile)
Local $count = 0
$hFile = FileOpen($sFile, 0)
If @error Then Return -1
$hNewFile = FileOpen(@DesktopDir & "\New\" & $sFile, 10)
If @error Then Return -1
While 1
$buffer = FileRead($hFile)
If @error Then ExitLoop
FileWrite($hNewFile, StringReplace($buffer, "aaaaaaaaaaaaaaaaaaaaa", "ttttttttttttttttttttt"))
WEnd
FileClose($hFile)
FileClose($hNewFile)
EndFunc ;==>_funcremplace
Pense à modifier $dossieratraiter =
Attention cela ne te modifera pas les sous dossiers
je te conseille te modif en utilisant la fonction Listage fichier par _FileListToArray3(
Fait des backups avant , on ne sait jamais
Bon courage
Re: [..] Remplacement d'une chaine dans de nombreux fichiers
Posté : mar. 24 févr. 2009 16:47
par Tlem
Pour simplifier les choses, il est possible d'utiliser ceci :
Code : Tout sélectionner
#Include <File.au3>
_ReplaceStringInFile($szFileName, $szSearchString, $szReplaceString[, $fCaseness = 0[, $fOccurance = 1]])
Re: [..] Remplacement d'une chaine dans de nombreux fichiers
Posté : mar. 24 févr. 2009 17:25
par Yogui
Merci pour cette fonction que je ne connaissai pas ça fonctionne !
Merci beaucoup pour le temps gagné