[R] _RecFileListToArray

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
ferrierd
Niveau 2
Niveau 2
Messages : 27
Enregistré le : mer. 20 avr. 2011 10:27
Status : Hors ligne

[R] _RecFileListToArray

#1

Message par ferrierd »

Bonjour,

J'utilise la fonction _RecFileListToArray pour afficher dans un listview le contenu de fichiers d'un répertoire particulier

Code : Tout sélectionner

_GUICtrlListView_DeleteAllItems($List_OS)
$ar_Array = _RecFileListToArray ($Rapport, "os_*.txt", 1, 0, 2, 2, "")
If @error = "0" then
    for $i = 1 to $ar_Array[0]
        $file = FileOpen($ar_Array[$i],0)
        $ligne = StringSplit(FileReadLine($file),";")
        GUICtrlCreateListViewItem($Ligne[1]&"|"&$Ligne[2]&"|"&$Ligne[3]&"|"&$Ligne[4]&"|"&$Ligne[5]&"|"&$Ligne[6]&"|"&$Ligne[7]&"|"&$Ligne[8]&"|"&$Ligne[10]&"|"&$Ligne[11],$List_OS)
    next
else
    msgbox(64,"","Aucun fichier n'a été trouvé ...")
EndIf
 
Dans mon programme je dispose d'un autre fonctionne qui propose la suppression d'un des fichiers de type os_*.txt
A la suite de quoi je réinitialise l'affichage de mon Listview en relançant la fonction ci-dessus et là un message d'erreur me signale que mon Array ne trouve pas un fichier.
J'ai examiné la valeur ar_Array[0] avant et après suppression d'un fichier de type os_*.txt.
Il apparait que cette valeur est toujours la même que celle initialement trouvé.
J'ai tenté un Dim ar_Array[1], la dimension de mon ar_Array est bien réinitialisée
Ce qui signifie que c'est la fonction _RecFileListToArray qui me retourne toujours le même nombre de fichiers, alors qu'entre les deux appels de fonction ce nombre de fichiers à changé.

Quelqu'un a-t-il été déjà confronté au souci?

Par avance merci
David
Modifié en dernier par ferrierd le lun. 16 févr. 2015 12:51, modifié 1 fois.
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] _RecFileListToArray

#2

Message par timmalos »

Vous utilsiez une fonction deprecated, plus maintenue. Essayez avec une version plus récente :
http://www.autoitscript.com/forum/topic ... eprecated/
http://www.autoitscript.fr/forum/viewto ... 532#p45532
ferrierd
Niveau 2
Niveau 2
Messages : 27
Enregistré le : mer. 20 avr. 2011 10:27
Status : Hors ligne

Re: [..] _RecFileListToArray

#3

Message par ferrierd »

Merci pour votre réponse rapide.
Je vais regarder cela.

En fait je viens de m'apercevoir que le souci résidait dans la suppression du fichier os_*.txt
Cette fonction est un basique Filedelete()

Par contre elle ne se réalise pas tant que le fichier semble "utilisé" par soit mon ar_array (pas le cas car je l'ai réinitialisé) soit la fonction _RecFileListToArray

Peut-etre est-ce du à la fonction depracated de _RecFileListToArray?
Je vais refaire des tests avec _FileListToArrayEx mais pas sûr que le fichier à supprimer sera disponible pour sa suppression...

Si quelqu'un a une idée pour cela.
Merci
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] _RecFileListToArray

#4

Message par timmalos »

Si c'est le FileDete qui pose problème, peut etre qu'il existe une autre application qui lock le fichier, pouvez vous essayer de le supprimer manuellement ?
ferrierd
Niveau 2
Niveau 2
Messages : 27
Enregistré le : mer. 20 avr. 2011 10:27
Status : Hors ligne

Re: [..] _RecFileListToArray

#5

Message par ferrierd »

Je viens d'utiliser la fonction _FileListToArrayEx pas de changement

Apparemment après remplissage de mon listview, je ne peux plus supprimer un fichier de type os_*.txt manuellement
Donc mon souci semble lié à soit:
- ar_Array
- _FileListToArrayEx
- listview

Je vais continuer à chercher dans cette direction.
Merci pour votre aide
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] _RecFileListToArray

#6

Message par timmalos »

Vous faites un FileOpen sur vos fichiers, sans faire de FileClose, il est donc logique que les lock ne soient pas relachés !
ferrierd
Niveau 2
Niveau 2
Messages : 27
Enregistré le : mer. 20 avr. 2011 10:27
Status : Hors ligne

Re: [R] _RecFileListToArray

#7

Message par ferrierd »

Pfff quel boulet je suis...

En effet, le pire c'est que j'avais déjà testé un fileclose() mais je l'avais inséré au mauvais endroit de ma boucle.
Du coup seul le dernier fichier lu était liberé.

Merci beaucoup, c'est résolu.
Désolé pour la perte de temps
Au moins j'ai récupéré une fonction plus à jour !
Bonne journée
David
Répondre