Pufff esto es una movida xDDDD
El array se genera bien con esa función pero no se, supongo que no estaré hoy muy lúcido, peor es que no lo consigo!
Os dejo la función de descarga múltiple:
Código: Seleccionar todo
Func _MultiDownload($asFiles, $iSimultaneous)
If IsArray($asFiles) = 0 Then Return SetError(1, 0, 0) ;$asFiles must be array
If UBound($asFiles, 0) <> 2 Then Return SetError(2, 0, 0) ;a 2-dimensional array
If IsInt($iSimultaneous) And $iSimultaneous < 1 Then Return SetError(3, 0, 0) ;make sure $iSimultaneous is a number above 0
Local $ahInet[$iSimultaneous][UBound($asFiles)], $afResults[UBound($asFiles)]
$iSimultaneous -= 1 ;cheat so we don't need UBound() later in the For-loops ;)
;For temporary stuff
Local $avInet, $iBusy
;For temporary end
While 1
Sleep(10)
For $iX = 0 To $iSimultaneous
If $ahInet[$iX][0] <> "" Then
$avInet = InetGetInfo($ahInet[$iX][0])
If $avInet[2] Then
$afResults[$ahInet[$iX][1]] = $avInet[3]
InetClose($ahInet[$iX][0])
$ahInet[$iX][0] = ""
EndIf
EndIf
Next
For $iX = $iSimultaneous To 0 Step -1
If $ahInet[$iX][0] <> "" Then ContinueLoop
If IsArray($asFiles) = 0 Then ExitLoop
$ahInet[$iX][1] = UBound($asFiles) - 1
$asFile = __ArrayPop2D($asFiles)
$ahInet[$iX][0] = InetGet($asFile[0], $asFile[1], 1, 1)
Next
$iBusy = 0
For $iX = 0 To $iSimultaneous
If $ahInet[$iX][0] <> "" Then $iBusy += 1
Next
If $iBusy < 1 Then ExitLoop
WEnd
Return $afResults
EndFunc ;==>_MultiDownload
Func __ArrayPop2D(ByRef $avArray)
Local $iUBound = UBound($avArray) - 1
Local $asLastVal[2] = [$avArray[$iUBound][0], $avArray[$iUBound][1]]
; Remove last item
If Not $iUBound Then
$avArray = ""
Else
ReDim $avArray[$iUBound][2]
EndIf
; Return last item
Return $asLastVal
EndFunc ;==>__ArrayPop2D
Como veis, la matriz que hay que pasarle debe cumplir la estructura:
Código: Seleccionar todo
Global $asFiles[5][2] = [["http://dl.dropbox.com/u/18344147/Opera_1110_int_Setup.exe", @ScriptDir & "\Opera Desktop 11.10.exe"], ["http://dl.dropbox.com/u/18344147/Opera_Mobile_11_Win7.exe", @ScriptDir & "\Opera Mobile for Desktop.exe"], ["http://something.something/something.something", @ScriptDir & "\Poop.exe"], ["http://dl.dropbox.com/u/18344147/autoit-v3.3.6.1-setup.exe", @ScriptDir & "\AutoIt 3.3.6.1.exe"], ["http://dl.dropbox.com/u/18344147/SciTE4AutoIt3%202010.02.28.exe", @ScriptDir & "\SciTE4AutoIt.exe"]]
Y la que me genera el script anterior es del tipo contenido_columna1,contenido_columna2 y me está costando adaptarlo porque como veis, solo necesito la ulr y el nombre del archivo para hacer la descarga, osea puedo hacer una operacion para generar a partir de ese array otro que si que sea del tipo que necesito.. ideas??
Saludos!