Foros del Web » Programando para Internet » ASP Clásico »

matrices dinamicas

Estas en el tema de matrices dinamicas en el foro de ASP Clásico en Foros del Web. Hola a todos! me podrian ayudar a darle una dimension dinamica a una matriz, los valores de las filas y colunmas seran determindas segun los ...
  #1 (permalink)  
Antiguo 16/09/2011, 08:11
 
Fecha de Ingreso: agosto-2011
Mensajes: 15
Antigüedad: 12 años, 8 meses
Puntos: 0
matrices dinamicas

Hola a todos!

me podrian ayudar a darle una dimension dinamica a una matriz, los valores de las filas y colunmas seran determindas segun los valores que se ingresen en el form
use el ReDim pero no me toma esta funcion, alguna idea de como hacer esto?


Gracias de antemano, saludos!
  #2 (permalink)  
Antiguo 16/09/2011, 09:21
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 3 meses
Puntos: 98
Respuesta: matrices dinamicas

Código ASP:
Ver original
  1. 'Creando una matriz
  2. Dim matriz(1, 4) '2 columnas, 5 filas
  3. 'Redimensionando una matriz, solo se puede redimensionar el ultimo elemento
  4. ReDim matriz(1, 5) '1 columna, seis filas


Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 16/09/2011, 17:02
 
Fecha de Ingreso: agosto-2011
Mensajes: 15
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: matrices dinamicas

Gracias por responder, lo q yo kiero variar es el numero de filas, la cantidad de columnas siempre sera la misma, el ejemplo funcionara para lo q qriero hacer, xq veo q lo q hace es quitar una fila y aumentar un columna, ahora te respondo desde el celular, cuando este en la compu pruebo el ejemplo, gracias, SALUDOS!!!!!!
  #4 (permalink)  
Antiguo 17/09/2011, 05:53
 
Fecha de Ingreso: septiembre-2011
Mensajes: 8
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: matrices dinamicas

Me parece que ese codigo no te va a funcionar, proba asi:

Dim Matriz()
Redim Matriz (5, 1) '5 columnas 1 renglon
'Le cargas los datos....
'y le haces:
Redim Preserve Matriz (5, 2) 'Para agregar un nuevo renglon
'No te olvides del PRESERVE !! Para que no te borre todos los datos que tenes !

Lo mejor, generalmente, es usar varios vectores en lugar de una matriz... las matrices siempre me traen problemas con las dimensiones.

Generalmente yo hago esto:

Dim Vector()
Redim Vector(0)
Vector(0) = 0 'o '' dependiendo si guardo numeros o texto
For t = 1 To 10
If Vector(Ubound(Vector)) <> 0 Then Redim Preserve Vector(Ubound(Vector)+1)
Vector(Ubound(Vector)) = t
Next
  #5 (permalink)  
Antiguo 17/09/2011, 10:34
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Respuesta: matrices dinamicas

Cita:
Lo mejor, generalmente, es usar varios vectores en lugar de una matriz... las matrices siempre me traen problemas con las dimensiones.
Eso de que es lo mejor, pues es muy subjetivo. Más bien depende del uso que se les vaya a dar. Ambos almacenan el mismo tipo de información y el costo de manejo de uno y otro es el mismo, leí alguna vez que en C el uso de vectores tenía un costo mayor de memoria que los arrays, pero es tan pequeño que no suele ser factor como para usar un arreglo de una dimensión a un vector. Si la información que se va a manejar es un arreglo relacionado yo no aconsejaría usar un conjunto de vectores a un array.

Ahora una pequeña observación.

Cita:
Dim Matriz()
Redim Matriz (5, 1) '5 columnas 1 renglon
En realidad lo que esta definiendo esa linea es una matriz de 6X2

Código ASP:
Ver original
  1. <%
  2. Dim Matriz()
  3. Redim Matriz (5, 1)
  4.  
  5. For i=0 to UBound(Matriz,1)
  6.   For j=0 to UBound(Matriz,2)
  7.         Randomize
  8.         response.write Int((100-10+1)*Rnd+10) & " "
  9.   Next
  10.     response.write "<br>"
  11. Next
  12.  
  13. %>

http://msdn.microsoft.com/en-us/libr...(v=VS.60).aspx
  #6 (permalink)  
Antiguo 20/09/2011, 09:00
 
Fecha de Ingreso: agosto-2011
Mensajes: 15
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: matrices dinamicas

muchachos muchas gracias por su ayuda, pude hacer lo que queria hacer, al final termine usando el ReDim que un principio no me ando, pero despues nose como funciono, quizas fue un problema con las minusculas y mayusculas que no me di cuenta, este es el codigo


dim algo
algo = datediff("d", fecha, fecha1) // aca determino el numero de filas de la matriz
dim arrData()
dim fila
dim col
fila = algo + 1 // le sumo un 1 por la primera posicion que es 0
col = 5
ReDim arrData(fila,col)
dim variable
For i=0 to UBound(arrData)-1
variable = dateadd("d", i,fecha)
arrData(i,1) = mid(variable,1,2)&"/"& mid(variable,4,2)
arrData(i,2) = 0
arrData(i,3) = 0
arrData(i,4) = 0
next

en el for inicializo la matriz con la primera columna cargada de fechas que serviran de indice de carga para cuando lea de un recordset, si alguien se pregunta porq hago esto es porque yo busco los datos de un rango de fechas, y si en el rango de fechas no hay datos en la base, despues mostrare que la fecha que no este en la base tendra valor 0 porque puede darse que en la base muestre esto

(07/09/2011, algo, algo)
(08/09/2011, algo, algo)
(10/09/2011, algo, algo)
(12/09/2011, algo, algo) //tuplas de la base

y lo q mostraria seria..

(07/09/2011, algo, algo)
(08/09/2011, algo, algo)
(09/09/2011, 0, 0)
(10/09/2011, algo, algo)
(11/09/2011, 0, 0)
(12/09/2011, algo, algo)

bueno todo esto para poder armar un xml que genera un grafico en el cual no queria dejar huecos con las fechas, espero q sirva de comprension todo lo escrito, y nuevamente, gracias por su ayuda.

Etiquetas: dinamicas, matrices
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:00.