Page 1 sur 1
[R] Lecture du texte d'un dossier
Posté : jeu. 17 sept. 2009 08:49
par killshout
Bonjour,
En faite j'ai des dossiers qui sont dénombrés :
Ce que je veux faire c'est renommer tout ces dossiers en "Chapitre xxx". Pour cela il faut que je puisse récupérer le numéros de chaque dossier.
Par exemple je prend le dossier 243 je lis le nombre 243 je le stock et je m'en sert pour renommer le dossier en "chapitre 243" puis je prend le dossier 244 je lis le nombre 244 je le stock et je m'en sert pour renommer le dossier en "chapitre 244", etc ...
J'ai cherché un peu mais je n'ai pas trouvé la fonction pour. J'ai juste trouvé StringRegExpReplace pour changer le nom.
Merci de votre aide.
Re: [...] Lecture du texte d'un dossier
Posté : jeu. 17 sept. 2009 12:25
par jumby
Placez ce script dans le répertoire où se trouve les dossiers à renommer :
Code : Tout sélectionner
#Include <File.au3>
#Include <Array.au3>
$FileList = _FileListToArray(@scriptdir&"\", "*", 2)
If not @Error=4 Then
for $numberfolder = 1 to $FileList[0]
$a = DirMove ( @scriptdir & "\" &$FileList[$numberfolder], @scriptdir & "\Chapitre " &$FileList[$numberfolder] , 0 )
Next
EndIf
_ArrayDisplay($FileList, "$FileList")
Attention :
Ce script ne vérifie aucunement le nom des dossiers avant de les renommer.
Re: [...] Lecture du texte d'un dossier
Posté : sam. 19 sept. 2009 21:15
par killshout
J'ai trouvé comment faire avec FileFindFirstFile et FileFindNextFile.
Mais je comprend pas je fais une boucle pour que la fonction FileFindNextFile m'affiche le nom du fichier que je recherche tant que se nom y est donc tant que @error est different de 1.
Ce qui donne le code suivant :
Code : Tout sélectionner
While (@error <> 1)
MsgBox(0,"Nom du fichier",FileFindNextFile($FirstFile) &" et Erreur = " & @error)
Wend
Sauf que le MsgBox m'affiche "Erreur = 1" alors qu'on ne sort pas de la boucle ...
Re: [...] Lecture du texte d'un dossier
Posté : sam. 19 sept. 2009 21:45
par Tlem
Il faut d'abord utiliser
FileFindFirstFile().
Ensuite, le test d'erreur ne doit pas être fait dans le
While de la boucle, mais juste après le
FileFindNextFile() et seulement après vous pourrez afficher la MsgBox.

Re: [...] Lecture du texte d'un dossier
Posté : sam. 19 sept. 2009 23:26
par killshout
Ca y est j'ai réussi.
Le temps de comprendre le fonctionnement de FileListToArray
Voici le code spécifique à mon dossier :
Code : Tout sélectionner
#Include <File.au3>
#Include <Array.au3>
$FileList=_FileListToArray("E:\")
If @Error=1 Then
MsgBox (0,"","No Files\Folders Found.")
Exit
EndIf
For $i = 1 To $FileList[0]
$Numero = StringRegExp($FileList[$i],'([0-9]{1,3})', 1)
if @Error <> 1 Then
if $Numero[0] >=100 Then
DirMove("E:\" & $FileList[$i],"E:\Chapitre " & $Numero[0], 0)
Else
DirMove("E:\" & $FileList[$i],"E:\Tome " & $Numero[0], 0)
EndIf
Endif
;MsgBox(0,"","Numero = " & $Numero& " et i = " & $i)
Next
Je vais essayer de faire un programme plus maniable pour des utilisateurs.
Merci pour votre aide !