elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Problema con matrices
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con matrices  (Leído 2,014 veces)
nhaalclkiemr


Desconectado Desconectado

Mensajes: 1.678


Máximo exponente 9DB9F1AEED2FADBDE 997BBE20FEDA92


Ver Perfil WWW
Problema con matrices
« en: 24 Agosto 2007, 00:15 am »

Weno, pues explico mi problema a ver si se entiende:

A mi me gustan las matrices dentro de otras matrices, y lo que quiero es tener varios archivos en matrices de esta forma:

filedata(0)(1 to FileLen(file1))
filedata(1)(1 to FileLen(file2))
filedata(2)(1 to FileLen(file3))
filedata(3)(1 to FileLen(file4))
filedata(4)(1 to FileLen(file5))


Una matriz filedata, cada elemento de la matriz es una matriz que contiene un array de bytes de cada archivo

Eso consigo hacerlo, lo malo es que tengo que declarar esto:

Código
  1. Dim i As Long
  2. Dim file(0 to 3) As String
  3. file(1) = "C:\archivo1.txt"
  4. file(2) = "C:\archivo2.txt"
  5. file(3) = "C:\archivo3.txt"
  6. ReDim filedata(0 to numerodearchivos) As Variant
  7. For i = LBound(file) to UBound(file)
  8. ReDim tempfiledata(0 to FileLen(file(i)) - 1) As Byte
  9. filedata(i) = tempfiledata
  10. Erase tempfiledata
  11. Next i

Weno, como veis tengo que utilizar una matriz tempfiledata temporal, pero este no es el mayor problema, sino que si tengo que pasar esta matriz a una funcion pues me da un error:

Imaginaros esta funcion:

Código
  1. Function convertirBytes (ByRef filedata() As Byte) As Long
  2. 'Ahora aki iria cualkiera cosa, el argumento lo paso ByRef pork las matrices hay que pasarlas siempre ByRef
  3. End Function

Pues cojed el primer code que puse, pues si después llamo a la funcion así me da un error:

Código
  1. Call convertirBytes (filedata(0))

En teoría filedata(0) es un array de bytes, y la funcion es lo que pide, pero me da un error. Yo creo que el error se debe a que filedata está declarada como Variant...pero la tengo que declarar como Variant para después poder meter dentro el array de bytes...Si la declaro como Byte despues no puedo meter dentro un array de Bytes...

La unica solución que encontré fue algo parecido a lo que hice al principio, usar una matriz temporal. Llamaría a la funcion de esta forma:

Código
  1. ReDim tempfiledata (LBound(filedata(0)) to UBound(filedata(0))) As Byte
  2. tempfiledata = filedata(0)
  3. Call convertirBytes (tempfiledata)
  4. Erase tempfiledata

Entonces así si que me funcionaría...pero imaginate que tengo que llamar a muchas funciones y tengo muchos archivos y grandes (es decir, muchos array de bytes), pues entonces andar pasando grandes cantidades de bytes a variables temporales reducen la velocidad de la aplicación...

Por eso me gustaría que me dierais posibles solucíones, lo importante es pasar a una funcion que pide un array de bytes pues eso, un array de bytes que está contenida en otra matriz...más claro no lo puedo decir...


Weno, si alguien me puede ayudar que escriba algo, espero vuestra ayuda, un saludo ;)


En línea

StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%
elmaro


Desconectado Desconectado

Mensajes: 301


Unas simples palabras...


Ver Perfil
Re: Problema con matrices
« Respuesta #1 en: 24 Agosto 2007, 17:06 pm »

es un tema complicado a mi pensar, yo no podria darte posibles soluciones en codigo, poruqe no seme ocurren :P  xd

pero si te digo es que, hay posibilidad de q sean muchos archivos????
de ultima q la aplicacion tenga su tiempo de respuesta, hay muchas aplicaciones q tardan unos segundos en responder el pedido del usuario, asi q no te hagas mucho problema

suerte con tu app


En línea

CeLaYa


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: Problema con matrices
« Respuesta #2 en: 25 Agosto 2007, 03:38 am »

mira lo que se me ocurre es usar estructuras

primero declaras uns estructura para contener una matriz:
Código:
Type otramatriz
    datos() As Variant
End Type

luego declaras una matriz que sea del tipo de la estructura que acabas de crear:
Código:
Public matriz() As otramatriz


luego puedes redimensionar a tu gusto las matricez
Código:
    ReDim matriz(1 To 10)
    ReDim matriz(1).datos(1 To 10)
    ReDim matriz(2).datos(1 To 10)
    ReDim matriz(3).datos(1 To 10).....

y no se, pero creo que para lo de pasar la matriz a la función puedes hacerlo asi:
Código:
Function convertirBytes (ByRef una_matriz() As otramatriz) As Long
********
end function
En línea

"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.
MANULOMM


Desconectado Desconectado

Mensajes: 559


Erepublik.com


Ver Perfil
Re: Problema con matrices
« Respuesta #3 en: 25 Agosto 2007, 06:09 am »

yo apoyo la idea de Celaya... me parece estupenda!!!!

Atentamente,


Juan Manuel Lombana
Medellín - Colombia
En línea


nhaalclkiemr


Desconectado Desconectado

Mensajes: 1.678


Máximo exponente 9DB9F1AEED2FADBDE 997BBE20FEDA92


Ver Perfil WWW
Re: Problema con matrices
« Respuesta #4 en: 25 Agosto 2007, 13:54 pm »

mmm, no había pensado en eso, gracias pienso que debe funcionar, lo pruevo y ya te digo

Gracias y un saludo ;)
En línea

StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%
nhaalclkiemr


Desconectado Desconectado

Mensajes: 1.678


Máximo exponente 9DB9F1AEED2FADBDE 997BBE20FEDA92


Ver Perfil WWW
Re: Problema con matrices
« Respuesta #5 en: 25 Agosto 2007, 17:02 pm »

Me funciono perfectamente tu idea ;D ;D muchas gracias :xD

He incluso no tengo que modificar la funcion, puedo pasar el array de bytes filedata(1).datos perfectamente con la funcion Function convertirBytes (ByRef una_matriz() As Byte), no hace falta que haga como decias tu Function convertirBytes (ByRef una_matriz() As otramatriz) As Long  ;D

Saludos ;)
En línea

StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%
CeLaYa


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: Problema con matrices
« Respuesta #6 en: 25 Agosto 2007, 22:04 pm »

que bueno que te funciono  ;D
En línea

"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[c] Problema con matrices
Programación C/C++
Dacan 1 1,490 Último mensaje 5 Abril 2013, 03:53 am
por betokscr
ayuda con problema de matrices y punteros
Programación C/C++
dato000 4 2,783 Último mensaje 10 Diciembre 2013, 21:02 pm
por dato000
Problema con matrices
Programación C/C++
Xammm 4 2,411 Último mensaje 10 Julio 2014, 14:07 pm
por Xammm
(Problema)Matrices Dinámicas de Caracteres!
Programación C/C++
Reynega 4 4,559 Último mensaje 6 Marzo 2015, 18:33 pm
por avesudra
Problema con Matrices en C
Programación C/C++
EASV95 2 1,603 Último mensaje 21 Abril 2015, 01:51 am
por EASV95
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines