[R] Boucle for dans boucle... for

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Saachaa
Niveau 5
Niveau 5
Messages : 142
Enregistré le : dim. 11 mars 2012 23:29
Status : Hors ligne

[R] Boucle for dans boucle... for

#1

Message par Saachaa »

Salut,

Alors voilà, je cherche tout simplement à lister le contenu des dossiers contenus dans '$EMPLACEMENT_DOSSIER[2]' (afin de les supprimer par la suite, mais ça, on s'en fiche).

La partie en gras ne fonctionne pas... mais comment lister $FILE dans $TXT ?

A vraie dire, la boucle For elle-même n'est pas obligatoire, c'est l'utilisation de mon Array qui l'est :).

Code : Tout sélectionner

#include <file.au3>

Global $TXT = @DesktopDir & "\test.txt"
_FileCreate($TXT)

    Dim $EMPLACEMENT_DOSSIER[2] = [@AppDataDir ,@TempDir]

        For $i = 0 To UBound($EMPLACEMENT_DOSSIER) - 1
            $SEARCH = FileFindFirstFile($EMPLACEMENT_DOSSIER & "\*")
            $FILE = FileFindNextFile($SEARCH)
[b]         For $i = 0 To UBound($FILE) - 1
                FileWriteLine($TXT, $EMPLACEMENT_DOSSIER[$i] & $FILE)
            Next[/b]
        Next
FileClose($SEARCH)
 
Thanks ;)
Modifié en dernier par Saachaa le sam. 02 juin 2012 18:19, modifié 1 fois.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Boucle for dans boucle... for

#2

Message par mikell »

Erreurs :
- FileFindNextFile ne renvoie pas une array
- Tu peux utiliser 2 boucles For mais il faut changer de variable : $i, $j

En fait tu ferais mieux d'utiliser une des innombrables variantes de FileListToArray
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Saachaa
Niveau 5
Niveau 5
Messages : 142
Enregistré le : dim. 11 mars 2012 23:29
Status : Hors ligne

Re: [..] Boucle for dans boucle... for

#3

Message par Saachaa »

Je vais regarder filelisttoarray ;).

Pour changer de variable, cela n'a rien changé chez moi... Mais après si on ne peut faire cela avec FFNF...
Saachaa
Niveau 5
Niveau 5
Messages : 142
Enregistré le : dim. 11 mars 2012 23:29
Status : Hors ligne

Re: [..] Boucle for dans boucle... for

#4

Message par Saachaa »

Code : Tout sélectionner

#include <File.au3>
#include <Array.au3>

    Dim $EMPLACEMENT_DOSSIER[2] = [@AppDataDir ,@TempDir]

        For $i = 0 To UBound($EMPLACEMENT_DOSSIER) - 1
            $FileList = _FileListToArray($EMPLACEMENT_DOSSIER[$i])
            _ArrayDisplay($FileList)
        Next
 
Marche nickel.

Code : Tout sélectionner

#include <File.au3>
#include <Array.au3>

Global $TXT = @DesktopDir & "\test.txt"
_FileCreate($TXT)

    Dim $EMPLACEMENT_DOSSIER[2] = [@AppDataDir ,@TempDir]

        For $i = 0 To UBound($EMPLACEMENT_DOSSIER) - 1
            $FileList = _FileListToArray($EMPLACEMENT_DOSSIER[$i])
            FileWriteLine($TXT, $FileList)
        Next
 
Failed ! Y'a rien dans le texte...
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Boucle for dans boucle... for

#5

Message par mikell »

Là par contre ça renvoie bien une array :mrgreen:
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Saachaa
Niveau 5
Niveau 5
Messages : 142
Enregistré le : dim. 11 mars 2012 23:29
Status : Hors ligne

Re: [..] Boucle for dans boucle... for

#6

Message par Saachaa »

Du for dans du for... ;)

Dis-moi, pourquoi je ne peux utiliser que des variables d'environnement ?
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Boucle for dans boucle... for

#7

Message par mikell »

Gné :?:
Par 'variables d'environnement' tu veux dire macros ?
Comprends pas, avec FileListToArray tu peux utiliser n'importe quel chemin de dossier...
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Saachaa
Niveau 5
Niveau 5
Messages : 142
Enregistré le : dim. 11 mars 2012 23:29
Status : Hors ligne

Re: [..] Boucle for dans boucle... for

#8

Message par Saachaa »

Yellow,

Beh non, c'est ça qui m'embête !

Je ne peux que lister des @x, comme @DesktopDir...

Si je fais un truc du genre :

Code : Tout sélectionner

Dim $EMPLACEMENT_DOSSIER[3] = _
        [@AppDataDir, _
        @WindowsDir & "\Applog", _
        @TempDir]

        For $i = 0 To UBound($EMPLACEMENT_DOSSIER) - 1
            $FileList = _FileListToArray($EMPLACEMENT_DOSSIER[$i])
            For $j = 1 to $FileList[0]
               FileWriteLine($TXT, $EMPLACEMENT_DOSSIER[$i] & "\" & $FileList[$j])
            Next
        Next
 
Edit: Je viens de tester ce chemin : @HD & "\Windaube", cela fonctionne... Mais pas avec Applog !

Sinon, si un dossier n'existe pas... ça va planter ?
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Boucle for dans boucle... for

#9

Message par mikell »

ça, ça relève de la gestion d'erreurs
_FileListToArray
...
Return Value :
Success: an Array
Failure: 0
@Error: 1 = Path not found or invalid
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Saachaa
Niveau 5
Niveau 5
Messages : 142
Enregistré le : dim. 11 mars 2012 23:29
Status : Hors ligne

Re: [..] Boucle for dans boucle... for

#10

Message par Saachaa »

Okay ça marche, je regarde tout ça !
Saachaa
Niveau 5
Niveau 5
Messages : 142
Enregistré le : dim. 11 mars 2012 23:29
Status : Hors ligne

Re: [..] Boucle for dans boucle... for

#11

Message par Saachaa »

Salut,

Tout marche pour le mieux, j'ai pu coder optimiser mon outil :).

Merci encore à toi !
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Boucle for dans boucle... for

#12

Message par Tlem »

N'oubliez pas la balise [R] dans le titre de votre premier message si votre sujet est résolu.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Saachaa
Niveau 5
Niveau 5
Messages : 142
Enregistré le : dim. 11 mars 2012 23:29
Status : Hors ligne

Re: [..] Boucle for dans boucle... for

#13

Message par Saachaa »

Bonjour Tlem,

Oups d'habitude je le fais tout le temps !

De suite ;)
Répondre