Autor
|
Tema: Crear Downloader? (Leído 3,522 veces)
|
shaggikpo
Desconectado
Mensajes: 30
|
El tema es que estoy haciendo un downloader que lee la lista de archivos a descargar de un archivo ini pero me quede trancado en la parte donde leo el archvio ini por secciones usando un bucle for: Sub Bajar() Dim i As Long FILES = LeerIni("FILES", "Count", TEMP & "\" & nomArchivo) For i = 1 To FILES FILE = "file" & i Direccion = LeerIni(FILE, "url", TEMP & "\" & nomArchivo) Descr = LeerIni(FILE, "descr", TEMP & "\" & nomArchivo) Checksum = LeerIni(FILE, "newchecksum", TEMP & "\" & nomArchivo) LocalFile = LeerIni(FILE, "localversion", TEMP & "\" & nomArchivo) Comprimido = LeerIni(FILE, "compressed", TEMP & "\" & nomArchivo) List1.ListItems.Add = Descr 'Download (Direccion) Next End Sub
COmo puedo hacer para almacenar en alguna varible estos datos y despues leerlos. Es decir ya que cada ves que se recorre el bucle las variables son sobreescritas
|
|
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
solo se me ocurre un metodo con clases, pero es algo enredado si te lo explico pero aun asi haber si te sirve xP
Una Clase con las siguientes variables:
IDClass' Este seria el ID de la clase algo asi como el md5 de algo, mas no del archivo descrito por "File & i" Direccion Descr Checksum LocalFile Comprimido
Despues declaras las propiedades Get y Let de la clase respectiva ) Para el uso al principio de tu programa cargas TODO el INI en las dichosas clases (Que se crean apartir de una mtriz tipo clase) Despues haces lo que te plasca con tu archivo ini, al dado caso el archivo ya estara cargado en el programa en las dichas clases. De esta forma si modificas el ini puedes obtar por obtener la configuracion anterior que se cargo en el archivo ini.
|
|
|
En línea
|
The Dark Shadow is my passion.
|
|
|
shaggikpo
Desconectado
Mensajes: 30
|
GRacias por responer d tan rapido. Podrias poner un ejemplo, es que con este prgrama estoy bastante liado ya, aun me queda terminar el CRCChechsum y lo demas.
|
|
|
En línea
|
|
|
|
shaggikpo
Desconectado
Mensajes: 30
|
Creo que ya lo he solucionado: Cree un Array asi: Private Type Lista Direccion As String Descr As String Checksum As String LocalFile As String Destino As String Comprimido As String End Type Dim Down() As Lista 'Y lo lleno asi Sub Obtener_Lista() Dim i As Long FILES = LeerIni("FILES", "Count", TEMP & "\" & nomArchivo) ReDim Preserve Down(1 To FILES) For i = 1 To FILES FILE = "file" & i Down(i).Direccion = LeerIni(FILE, "url", TEMP & "\" & nomArchivo) Down(i).Descr = LeerIni(FILE, "descr", TEMP & "\" & nomArchivo) Down(i).Checksum = LeerIni(FILE, "newchecksum", TEMP & "\" & nomArchivo) Down(i).LocalFile = LeerIni(FILE, "localversion", TEMP & "\" & nomArchivo) Down(i).Comprimido = LeerIni(FILE, "compressed", TEMP & "\" & nomArchivo) List1.ListItems.Add = Down(i).Descr 'Download (Direccion) Next End Sub
|
|
|
En línea
|
|
|
|
danicasasm
Desconectado
Mensajes: 23
|
Una variante podria ser esta: Private Type Lista Direccion As String Descr As String Checksum As String LocalFile As String Destino As String Comprimido As String End Type dim Coleccion as new Collection dim Datos as Lista Dim Down() As Lista 'Y lo lleno asi Sub Obtener_Lista() Dim i As Long FILES = LeerIni("FILES", "Count", TEMP & "\" & nomArchivo) For i = 1 To FILES FILE = "file" & i Datos.Direccion = LeerIni(FILE, "url", TEMP & "\" & nomArchivo) Datos.Descr = LeerIni(FILE, "descr", TEMP & "\" & nomArchivo) Datos.Checksum = LeerIni(FILE, "newchecksum", TEMP & "\" & nomArchivo) Datos.LocalFile = LeerIni(FILE, "localversion", TEMP & "\" & nomArchivo) Datos.Comprimido = LeerIni(FILE, "compressed", TEMP & "\" & nomArchivo) List1.ListItems.Add = Datos.Descr 'Download (Direccion) Coleccion.add Datos Next
|
|
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
@danicasasm Es una vaiante que ocuparia mas recursos de procesador al momento de buscar un dicho registro con la instruccion "each". Aqui dejo algo del codigo que posteo el autor de este hilo a como yo lo haria: OJO son dos funciones alternativas usar solo una segun se desee: Private Type Lista Direccion As String Descr As String Checksum As String LocalFile As String Destino As String Comprimido As String End Type Dim Down() As Lista ' // Get_List devuelve la cantidad de registros cargados o anidados. ' //--------------------------------------------------------------------- ' // NRegToADD = LeerIni("FILES", "Count", TEMP & "\" & nomArchivo) ' // Structr = Structr ' // RegCon = True/False Public Function Get_List(ByVal NRegToADD As Long, ByRef Structr() As Lista, ByVal RegCon As Boolean) As Long Dim I As Long Dim Salto As Boolean Dim CantRegEx As Long If NRegToADD <= 0 Then Salto = True ' // Se agregara algo? If Salto = False Then If RegCon And Not (Not (Structr) = -1) Then ' // Se continua o se resetea? y esta inicialisada la matriz? CantRegEx = UBound(Structr) - LBound(Structr) ' // Cantidad de Registros actuales ReDim Preserve Structr(CantRegEx + NRegToADD) ' // Se continua Else ReDim Structr(NRegToADD - 1) ' // Se Resetea End If For I = LBound(Structr) To UBound(Structr) ' // Se inicia en 0 pero aun asi uso lbound() File = "file" & I Structr(I).Direccion = LeerIni(File, "url", TEMP & "\" & nomArchivo) Structr(I).Descr = LeerIni(File, "descr", TEMP & "\" & nomArchivo) Structr(I).Checksum = LeerIni(File, "newchecksum", TEMP & "\" & nomArchivo) Structr(I).LomocalFile = LeerIni(File, "localversion", TEMP & "\" & nomArchivo) Structr(I).Comprimido = LeerIni(File, "compressed", TEMP & "\" & nomArchivo) Next Get_List = I ' // Se devuelve la cantidad de registros cargados End If End Function ' // Get_List devuelve la cantidad de registros cargados o anidados. ' //--------------------------------------------------------------------- ' // strfile = TEMP & "\" & nomArchivo ' // Structr = Structr ' // RegCon = True/False Public Function Get_ListFromFileIni(strFile As String, ByRef Structr() As Lista, ByVal RegCon As Boolean) As Long Dim I As Long Dim Salto As Boolean Dim CantRegEx As Long Dim NRegToADD As Long NRegToADD = LeerIni("FILES", "Count", strFile) ' // cargamos la cantidad de registros a cargar If NRegToADD <= 0 Then Salto = True ' // Se agregara algo? If Salto = False Then If RegCon And Not (Not (Structr) = -1) Then ' // Se continua o se resetea? y esta inicialisada la matriz? CantRegEx = UBound(Structr) - LBound(Structr) ' // Cantidad de Registros actuales ReDim Preserve Structr(CantRegEx + NRegToADD) ' // Se continua Else ReDim Structr(NRegToADD - 1) ' // Se Resetea End If For I = LBound(Structr) To UBound(Structr) ' // Se inicia en 0 pero aun asi uso lbound() File = "File" & I Structr(I).Direccion = LeerIni(File, "url", strFile) Structr(I).Descr = LeerIni(File, "descr", strFile) Structr(I).Checksum = LeerIni(File, "newchecksum", strFile) Structr(I).LomocalFile = LeerIni(File, "localversion", strFile) Structr(I).Comprimido = LeerIni(File, "compressed", strFile) Next Get_ListFromFileIni = I ' // Se devuelve la cantidad de registros cargados End If End Function
Dulces Lunas!¡.
|
|
« Última modificación: 10 Noviembre 2009, 09:06 am por ░▒▓BlackZeroҖ▓▒░ »
|
En línea
|
The Dark Shadow is my passion.
|
|
|
|
|