Page 1 sur 1

[R] Maniplutions de tableaux.

Posté : lun. 18 janv. 2010 16:17
par Voor0ck
Bonjour,

je bloque sur une addition d'éléments d'un tableau.

Mon script recupere des chemins reseau via un fichier .ini, ensuite je dois calculer le volume de chaque dossier et les ajouter pour savoir si cela est inférieur à la taille du disque C:, si c'est le cas, je lance la copie des repertoires reseaux sur le disque C:.

Début de mon code :

Code : Tout sélectionner

#include <file.au3>
#include <Array.au3>

;calculer l'espace restant sur C:
$sizeC = DriveSpaceFree( "c:\" )
MsgBox(4096, "Free space on C:", $sizeC & " MB")

;lire fichier .ini
$file = FileOpen("c:\robocopy.ini",0)
$CountLines = _FileCountLines("c:\robocopy.ini")

Local $avArray[$CountLines]

for $i = 0 to $CountLines-1
$line = FileReadLine($file)
$sizeS = DirGetSize($line)
$sizeS = Round($sizeS / 1024 / 1024)
$avArray[$i] = $sizeS
;_ArrayDisplay($avArray, "$avArray")    
If @error = -1 Then ExitLoop
MsgBox(0, "Line read:", $line)
MsgBox(0, "Taille dossier N°" & $i, $avArray[$i])
Next
 
Mon probleme est donc d'ajouter ensemble tous les $avArray[$i] pour avoir le volume total de ce que je dois copier.

Re: [..] Maniplutions de tableaux.

Posté : lun. 18 janv. 2010 19:22
par timmalos
La prochaine fois pensez a mettre les balises de code svp. Merci à Yogui pour le rapport.

Re: [..] Maniplutions de tableaux.

Posté : lun. 18 janv. 2010 21:01
par matwachich
essay ca

Code : Tout sélectionner

#include <file.au3>
#include <Array.au3>

;calculer l'espace restant sur C:
$sizeC = DriveSpaceFree( "c:\" )
MsgBox(4096, "Free space on C:", $sizeC & " MB")

;lire fichier .ini
$file = FileOpen("c:\robocopy.ini",0)
$CountLines = _FileCountLines("c:\robocopy.ini")

Local $avArray[$CountLines]

for $i = 0 to $CountLines-1 Step 1
    $line = FileReadLine($file)
    $sizeS = DirGetSize($line)
    $sizeS = Round($sizeS / 1024 / 1024)
    $avArray[$i] = $sizeS
    ;_ArrayDisplay($avArray, "$avArray")
    If @error = -1 Then ExitLoop
    MsgBox(0, "Line read:", $line)
    MsgBox(0, "Taille dossier N°" & $i, $avArray[$i])
Next

For $i = 0 To $CountLines-1 Step 1
    Local $total
    $total += $avArray[$i]
Next
MsgBox(0, "Taille total", $total)

Re: [..] Maniplutions de tableaux.

Posté : mar. 19 janv. 2010 10:38
par Voor0ck
Merci, cela fonctionne parfaitement :D