Vérifier si un fichier est vide

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
wis
Niveau 1
Niveau 1
Messages : 6
Enregistré le : jeu. 03 mars 2016 16:11
Status : Hors ligne

Vérifier si un fichier est vide

#1

Message par wis »

Bonjour,

Je suis à la recherche d'une fonction ou autre pour vérifier qu'un fichier est vide.

Voici mon code:

Code : Tout sélectionner

local $file="export.txt"
$read = FileRead($file)
$line = StringSplit($read, @CR)
For $i = 1 To $line[0]
   $zone=StringSplit($line[$i],",")
$cle_1 = StringRight($zone[3],10)
$cle_2 = StringLeft($cle_1,9)
$cle_3 = StringRight($zone[4],2)
$cle_4 = StringLeft($cle_3,1)
$cle_5 = $zone[8]
$cle_6 = $zone[6]
Si le fichier export.txt contient des données tout est nickel, par contre s'il est vide

Error: Array variable has incorrect number of subscripts or subscript dimension range exceeded
sur

Code : Tout sélectionner

 $zone=StringSplit($line[$i],",")
J'ai parcouru le forum et je n'ai pas trouvé de piste pour mon problème.

Merci pour votre aide,

:o
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1037
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: Vérifier si un fichier est vide

#2

Message par walkson »

Bonjour,
Et avec FileGetSize() ?
notez que certains fichiers comme Excel ne sont jamais à 0 Ko (sauf erreur de ma part)
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: Vérifier si un fichier est vide

#3

Message par mikell »

Vérifier si le fichier est vide ne suffit pas, il vaut mieux tester $zone[0]
Ce test le montre :

Code : Tout sélectionner

#Include <Array.au3>
FileWrite(@scriptdir & "\test.txt", "")
$read = FileRead(@scriptdir & "\test.txt")
$line = StringSplit($read, @CR)
 _ArrayDisplay($line, "$line")    ; << ça passe
For $i = 1 To $line[0]
   $zone=StringSplit($line[$i],",")
 _ArrayDisplay($zone, "$zone")    ; << ça passe
  $cle_1 = StringRight($zone[3],10)    ; << ça passe pas
Next
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
wis
Niveau 1
Niveau 1
Messages : 6
Enregistré le : jeu. 03 mars 2016 16:11
Status : Hors ligne

Re: Vérifier si un fichier est vide

#4

Message par wis »

Merci mikell je vais tester.
Il faut tester si zone [0] existe?

Code : Tout sélectionner

 if zone[0] <> "" then 
La suite ....


En tout cas merci pour vos réponses


Envoyé de mon GT-I9505 en utilisant Tapatalk
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: Vérifier si un fichier est vide  

#5

Message par mikell »

Non non, dans $zone[0] tu as le compte des éléments de l'array retournée par StringSplit
Je vois que tu sélectionnes $zone[8] , ça veut dire que l'array a au moins 9 lignes (ligne 0 = nombre d'items, + les 8 items)
Donc pour 8 items (par exemple) il faut tester If $zone[0] = 8 Then ... parce que s'il y en a moins tu auras une erreur "Array variable has incorrect number of subscripts" sur $cle_5 = $zone[8]
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
wis
Niveau 1
Niveau 1
Messages : 6
Enregistré le : jeu. 03 mars 2016 16:11
Status : Hors ligne

Re: Vérifier si un fichier est vide

#6

Message par wis »

OK je teste tous ça ce weekend et je vous dis.

Merci en tout cas pour la clarté et la rapidité des réponses.
wis
Niveau 1
Niveau 1
Messages : 6
Enregistré le : jeu. 03 mars 2016 16:11
Status : Hors ligne

Re: Vérifier si un fichier est vide

#7

Message par wis »

Et voila petit test et tout est ok

Merci encore
Répondre