Aide et conseils concernant AutoIt et ses outils.
Yogui
Niveau 9
Messages : 689 Enregistré le : ven. 18 avr. 2008 17:29
Status :
Hors ligne
#1
Message
par Yogui » mar. 24 févr. 2009 11:56
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
Modifié en dernier par
Yogui le mar. 24 févr. 2009 17:26, modifié 1 fois.
primax
Niveau 1
Messages : 9 Enregistré le : lun. 03 nov. 2008 14:19
Status :
Hors ligne
#2
Message
par primax » mar. 24 févr. 2009 13:46
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
Tlem
Site Admin
Messages : 11798 Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status :
Hors ligne
#3
Message
par Tlem » mar. 24 févr. 2009 16:47
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]])
Yogui
Niveau 9
Messages : 689 Enregistré le : ven. 18 avr. 2008 17:29
Status :
Hors ligne
#4
Message
par Yogui » mar. 24 févr. 2009 17:25
Merci pour cette fonction que je ne connaissai pas ça fonctionne !
Merci beaucoup pour le temps gagné