Page 1 sur 1
[R] Faire une recherche dans un fichier ini
Posté : sam. 22 janv. 2011 19:23
par richie6700
Bonjour à vous!!!
Comment est-il possible de faire une recherche dans un fichier INI??
J'explique voici mon INI :
► Afficher le texte
Code : Tout sélectionner
[repertoire]
repertoire1=\\serveur1\Lundi
repertoire2=\\serveur1\Mardi
repertoire3=\\serveur1\Mercredi
repertoire4=\\serveur2\Lundi
repertoire5=\\serveur2\Mardi
Je souhaiterais avoir un script qui me dit
"Si aujourd'hui on est Lundi, effacer dans tous les serveurs le répertoire Lundi" . En fait, dire au script de rechercher Lundi dans le INI?
Merci a vous!!

Re: [...] Faire une recherche dans un fichier ini
Posté : sam. 22 janv. 2011 19:33
par matwachich
IniReadSection, puis tu parcoure le array en résultant
Re: [...] Faire une recherche dans un fichier ini
Posté : sam. 22 janv. 2011 19:43
par richie6700
MErci pour votre reponse.
J'ai oublier de dire que j'été pas fort en script... si vous pourriez m'en dire un peu plus si sa vous dérange pas... M'éclairer un peu
Merci
Re: [...] Faire une recherche dans un fichier ini
Posté : sam. 22 janv. 2011 20:31
par richie6700
J'ai ce code
► Afficher le texte
Code : Tout sélectionner
#Include <File.au3>
#Include <Array.au3>
$file = FileOpen("test.ini", 0)
$repertoire = IniReadSection ("test.ini", "repertoire")
$day = @WDAY
If @error Then
MsgBox(4096, "", "Fichier test.ini non trouvé")
Else
For $i = 1 To $repertoire[0][0]
FileDelete($repertoire[$i][1])
$FileList=_FileListToArray($repertoire[$i][1])
If $FileList = $day and @error <> 1 and @error <> 4 Then ; Si le repertoire existe et qu'il y a des fichiers/respertoires à supprimer
For $j = 1 to $FileList[0]
DirRemove($repertoire[$i][1] & "\" & $FileList[$j], 1)
Next
EndIf
Next
EndIf
OU sa cloche????
Oublier pas je suis extra nul en script
Re: [...] Faire une recherche dans un fichier ini
Posté : dim. 23 janv. 2011 09:52
par jl56
bonjour,
Dans votre code vous avez ($FileList = $day ) !!
$day est le numéro de jour entre 1 et 7
$filelist n'a pas de rapport avec une notion de jour
Je ne voie pas ce que vous chercher à réaliser, à ce stade je ne peut pas vous aider
Je pense que vous devez imbriquer plus de branche conditionnel
ex si on est tel jours on fait ceci
si le dossier contient des fichiers alors effacement
etc..
A+ JL56
Re: [...] Faire une recherche dans un fichier ini
Posté : dim. 23 janv. 2011 12:39
par richie6700
Bonjour,
En fait moi j'aurais voulu dire sa :
Si on est Lundi alors effacer le contenu du dossier Lundi et non le répertoire lui même. Sachant que Lundi contient des dossier et des fichiers et que mon fichier INI est comme indiquer dans mon 1er message.
Donc si on est Lundi faire une recherche du mot "lundi" dans la section "repertoire" du INI et dire d'effacer le contenu.. Si on est mardi dire d'effacer le contenu de Mardi sachant que j'ai plusieurs serveurs mais possédant environ la même arboresence.
Est-ce possible?? si Oui Comment fais-je???
Merci par avance
Re: [...] Faire une recherche dans un fichier ini
Posté : dim. 23 janv. 2011 13:31
par richie6700
Et ce script c'est n'importe quoi aussi???
► Afficher le texte
Code : Tout sélectionner
#Include <File.au3>
#Include <Array.au3>
$i = 0
$j = 0
$file =""
$repertoire = ""
$FileList = ""
Dim $BackupPath = "D:\MyPathBackup"
Dim $ServersName = ("Monserveur1, Monserveur2")
;Déclaration des variable interne
Dim $ServersName, $i
Dim $Day [8] = ["7", "Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"]
$ServersName = StringSplit($ServersName, ",")
$file = FileOpen("test.ini", 0)
Local $DayBackupPath = $BackupPath & "\" & $ServersName[$i] & "\" & $Day[@WDAY]
If @error Then
MsgBox(4096, "", "Fichier test.ini non trouvé")
Else
If $repertoire = $DayBackupPath Then
For $i = 1 To $repertoire[0][0]
FileDelete($repertoire[$i][1])
$FileList=_FileListToArray($repertoire[$i][1])
For $j = 1 to $FileList[0]
DirRemove($repertoire[$i][1] & "\" & $FileList[$j], 1)
Next
Next
EndIf
EndIf
Re: [...] Faire une recherche dans un fichier ini
Posté : dim. 23 janv. 2011 19:39
par richie6700
Lol je viens de relire mon dernier message. On dirait que je vous agresse. Mais ce n'est pas une agression qu'on soit d'accord....

. Je sais que mon script est faux mais si vous pouvez me dire un peu. La j'ai une autre modif
► Afficher le texte
Code : Tout sélectionner
#Include <File.au3>
#Include <Array.au3>
$var = IniReadSection("C:\Temp\myfile.ini", "section2")
Dim $BackupPath = "D:\MyPathBackup"
Dim $ServersName = ("TMonserveur1,Monserveur2")
$FileList = ""
$i = 0
$j = 0
; Déclarations internes.
Dim $ServersName, $z
Dim $Day [8] = ["7", "Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"]
$ServersName = StringSplit($ServersName, ",")
Local $DayBackupPath = $BackupPath & "\" & $ServersName[$z] & "\" & $Day[@WDAY]
While $var[$i][1] = $DayBackupPath
If @error Then
MsgBox(4096, "", "Error occurred, probably no INI file.")
Else
For $i = 1 To $var[0][0]
FileDelete($var[$i][1])
$FileList=_FileListToArray($var[$i][1])
Next
If @error <> 1 and @error <> 4 Then
For $j = 1 to $FileList[0]
DirRemove($var[$i][1] & "\" & $FileList[$j], 1)
Next
EndIf
EndIf
WEnd
Comment dire que si dans la section il existe le mot "Lundi", si on est lundi d'appliquer
► Afficher le texte
Code : Tout sélectionner
For $i = 1 To $var[0][0]
FileDelete($var[$i][1])
$FileList=_FileListToArray($var[$i][1])
Next
If @error <> 1 and @error <> 4 Then
For $j = 1 to $FileList[0]
DirRemove($var[$i][1] & "\" & $FileList[$j], 1)
Next
Merci à vous
Re: [...] Faire une recherche dans un fichier ini
Posté : dim. 23 janv. 2011 22:05
par jl56
Bonsoir,
Et bien si je me sent agressé, mais cela ne fait rien je vais comme même tenter de vous aider
Vos script sont effectivement n'importe quoi ( je vous cite )
Vous ne devez pas utiliser la touche F1 , lire les explications et tester les exemples
Scite nous aides pourtant beaucoup pour détecter les erreurs de syntaxe
Avant de vous lancer dans un script d'effacement de fichier sur des serveurs vous devriez apprendre un peu plus
le language Autoit. Aller voir sur le forum les exemples
Allez sur le site
http://www.siteduzero.com/tutoriel-3-22 ... utoit.html
Timmalos et d'autre ont fait un travail remarquable.
Quoi qu'il en soit vous trouverez ci-dessous un code fonctionnel suivant ce que j'ai compris de vos explications
► Afficher le texte
Code : Tout sélectionner
#include <File.au3>
#include <Array.au3>
;~ $i = 0 dans votre script cela ne sert à rien
;~ $j = 0 dans votre script cela ne sert à rien
;~ $file ="" dans votre script cela ne sert à rien
;~ $repertoire = "" dans votre script cela ne sert à rien
;~ $FileList = "" dans votre script cela ne sert à rien
;~ Dim $BackupPath = "D:\MyPathBackup" dans votre script cela ne sert à rien et la syntaxe n'est pas bonne
;~ Dim $ServersName = ("Monserveur1, Monserveur2") dans votre script cela ne sert à rien et la syntaxe n'est pas bonne
;Déclaration des variable interne
;~ Dim $ServersName, $i dans votre script cela ne sert à rien et la syntaxe n'est pas bonne
Dim $Day[8] = ["7", "Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"]
;~ $ServersName = StringSplit($ServersName, ",") dans votre script cela ne sert à rien
;~ $file = FileOpen("test.ini", 0) dans votre script cela ne sert à rien il n'y a pas besoin d'ouvrir un fichier ini
;~ Local $DayBackupPath = $BackupPath & "\" & $ServersName[$i] & "\" & $Day[@WDAY]
;~ $var = IniReadSection("C:\Temp\myfile.ini", "section2") vous n'avez pas de section2 dans votre ini
$repertoire = IniReadSection("test.ini", "repertoire")
If @error Then
MsgBox(4096, "", "Fichier test.ini non trouvé")
Else
;~ If $repertoire = $DayBackupPath Then dans votre script $repertoire ="" ( en ligne 7 )
For $i = 1 To $repertoire[0][0]
;~ FileDelete($repertoire[$i][1]) vous dites ne pas effacer ce dossier alors pourquoi le faite vous ici
$morceau_du_chemin = StringSplit($repertoire[$i][1], "\") ; je troncone le chemin avec \
MsgBox(0, "le chemin complet de " & $repertoire[$i][0], "est " & $repertoire[$i][1]&@crlf&"la fin est "&$morceau_du_chemin[4])
If $morceau_du_chemin[4] = $Day[@WDAY] Then ; je test si le dernier troncon correspond a aujourd'ui
$FileList = _FileListToArray($repertoire[$i][1])
For $j = 1 To $FileList[0]
;~ DirRemove($repertoire[$i][1] & "\" & $day[@WDAY], 1)
MsgBox(0, "DirRemove", $repertoire[$i][1] & "\" & $Day[@WDAY]) ; ligne de testj'efface que lorsque je suis sur de mon programme
Next
EndIf
Next
EndIf
Prennez un peu de recul et Autoit vous rendra de grand service, cela en vaut la peine
A+ JL56
Re: [R] Faire une recherche dans un fichier ini
Posté : dim. 23 janv. 2011 22:43
par richie6700
Merci beaucoup j'ai enfin compris!!!! Vous m'avez sauver la vie

.
Bonne soirée et merci encore
Re: [...] Faire une recherche dans un fichier ini
Posté : lun. 24 janv. 2011 19:48
par matwachich
n'oubliez pas le [R] SVP.