Bonsoir,
Voici l'erreur
Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
Le script suivant:
► Afficher le texte
Code : Tout sélectionner
If IsArray($file) Then
SplashTextOn ("", "Initialisation ..." , 500, 55, -1, -1, 16)
For $i = 1 To $file[0]
; msgbox(0,"", "==" & $answer[$i] & "==")
$file[$i] = StringStripWS($file[$i], 3)
; msgbox(0,"", "==" & $Nom[$i] & "==")
FileWriteLine($LogFile,"")
FileWriteLine($LogFile,"=~=~=~=~=~=~=~=~=~=~=~=~ Recherche pour les Fichiers " & _
""" " & $file[$i] & " """ & " =~=~=~=~=~=~=~=~=~=~=~=~")
FileWriteLine($LogFile,"")
For $k in $aArray
If IsNumber($k) Then ContinueLoop
If DriveStatus($k & "\") = "NOTREADY" Then ContinueLoop
FileWriteLine($LogFile,"Recherche pour le lecteur " & $k &"\")
SplashTextOn ("", "Scanning Files... " & $k & "\ " & $file[$i] & " " & $opt, 500, 55, -1, -1, 16)
FileWriteLine($LogFile,"")
;$Recherche = _FileListToArrayEx ($k & "\", "*" & $file[$i] & "*.*", 0, 1)
$Recherche = _FileListToArrayEx ($k & "\","*" & $file[$i] & "*" & $opt, 0, 1)
if @error = 4 then
FileWriteLine($LogFile,"Pas de fichier pour le lecteur " & $k &"\")
FileWriteLine($LogFile,"")
FileWriteLine($LogFile,"")
ContinueLoop
EndIf
If IsArray($Recherche) Then
For $j = 1 to $Recherche[0] ; parcourt le tableau
SplashTextOn ("", $Recherche[$j], 500, 55, -1, -1, 49)
;FileWriteLine($LogFile, $Recherche[$j])
$compted = $compted + 1
Next
If IsArray($Recherche) Then
For $e = 1 to $Recherche[0] ; parcourt le tableau
$size = fileGetSize($Recherche[$e]) ; récupération de la taille du fichier
$create = FileGetTime($Recherche[$e],1,0) ; mise sous forme de tableau de la date et heure de création du fichier
$sAttribute = FileGetAttrib($Recherche[$e]) ; attibut du dit fichier
If _IsChecked($checkmd5) = 1 then
Guictrlsetstate($checkmd5,$GUI_CHECKED)
$MD5CTX = _MD5Init()
For $i = 1 To Ceiling(FileGetSize($recherche[$e]) / $BufferSize)
_MD5Input($MD5CTX, FileRead($recherche[$e], $BufferSize))
Next
$Hash = _MD5Result($MD5CTX)
$Hash = StringTrimLeft($Hash, 2) ; suppression des 2 primers caractères du hash à savoir "0x"
FileClose($recherche[$e])
EndIf
FileWriteLine($LogFile,$create[2] & "/" & $create[1] & "/" & $create[0] & _
" à " & $create[3] & ":" & $create[4] & ":" & $create[5] & " " & $sAttribute & " " & " "& $Recherche[$e] & " (" & $size & ")" & " " & "[MD5 " & $Hash & " ]" )
Next
EndIf
EndIf
Fonctionne parfaitement bien dans les cas suivants:
Recherche de: Dylan
Option: .mp3
Lecteur: peu importe c:\ d:\ ou h:\
Le logfilefile sort nikel
Si je demande l'extraction du hash md5, c'est nikel aussi
Je fais la même demande mais en imposant
l'option de lecteur: All
Fonctionne nikel sans l'extraction du hash md5
si je demande le hash, une erreur sort
C:\Users\Labougie\Desktop\ToolSearch terminé.au3 (665) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
SplashTextOn ("", "Scanning Files... " & $k & "\ " & $file[$i] & " " & $opt, 500, 55, -1, -1, 16)
SplashTextOn ("", "Scanning Files... " & $k & "\ " & ^ ERROR
->21:49:10 AutoIt3.exe ended.rc:1
$file[$i] ne semble plus être au top
pourtant le scan s'effectue sur l'ensemble des lecteurs, de c:\ à g:\ le fichier dylan.mp3 n'existe pas.
Ils se trouvent sur h:\
Là il sont tous listés mais en continuant le script sur le lecteur i:\ blocage.
Cette fois-ci je sèche franchement
voici la ligne 665
SplashTextOn ("", "Scanning Files... " & $k & "\ " & $file[$i] & " " & $opt, 500, 55, -1, -1, 16)
Quand le splashon affiche le chemin complet du dernier fichier cela crée le beugue.
il faut savoir que le splashon n'affiche que la lettre du lecteur, le mot recherché, et l'option, JAMAIS le path du fichier
donc ceci
Scanning Files... d:\ Dylan all se situe dans le splash
J'ai changé la taille du splash longeur largeur, cela ne rèsoud le problème
labougie