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

Ayuda con Do while y crear variable

Estas en el tema de Ayuda con Do while y crear variable en el foro de ASP Clásico en Foros del Web. Hola tengo dentro de un while esto: (aux es una variable cuyo valor cambia y viene dado antes de este while. Por ejemplo 9) contador=1 ...
  #1 (permalink)  
Antiguo 15/12/2006, 03:00
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 7 meses
Puntos: 0
Ayuda con Do while y crear variable

Hola tengo dentro de un while esto:

(aux es una variable cuyo valor cambia y viene dado antes de este while. Por ejemplo 9)

contador=1

Do while contador < aux

Response.write ("<br>C" & contador & "=" & contador/5)

contador= contador + 1

Loop


Bien, me escribe una linea por cada valor de C, es decir:

C1=0,2
C2=0,4
'
'
C8=1,6

Lo que quiero es que se me grabe por cada C una variable, es decir que me cree la variable C1,C2,C3.....C8 (en este caso ya que en otros solo puede haber 3Cs o 15 Cs, dependiendo del valro de aux) y que esa variable que se llame asi guarde además el valor de su C
  #2 (permalink)  
Antiguo 15/12/2006, 14:06
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: Ayuda con Do while y crear variable

Y un arreglo no estaria mejor?
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 15/12/2006, 18:24
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 7 meses
Puntos: 0
Re: Ayuda con Do while y crear variable

como dices?
  #4 (permalink)  
Antiguo 15/12/2006, 18:31
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: Ayuda con Do while y crear variable

Hay varias formas de lograrlo, puedes utilizar una matriz que almacene

Código:
"C1"  |   "0,2"
"C2"  |   "0,4"
and so on...

Todo lo que tendrias que hacer es declararlo

matriz(filas, columnas)

Despues dentro de tu ciclo nada mas vas llenando la matriz

Código:
matriz(i,0) = "C"&contador
matriz(i,1) = cstr(contador/5)
Y asunto arreglado...Hay otros objetos que te pueden ayudar como un diccionario de datos que almacena un par valor. Podrias utilizar un arreglo bidimensional(un arreglo dentro de cada uno de los indices de tu arreglo)

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 16/12/2006, 06:42
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 7 meses
Puntos: 0
Re: Ayuda con Do while y crear variable

Hola,

No consigo que me funcione.

¿Cómo declaro la matriz?
¿Qué valor toma la variable i?

¿Porque tengo que usar Cstr si opero con números?

Gracias por tus respuestas, haber si consigo que me funcione bien
  #6 (permalink)  
Antiguo 16/12/2006, 07:46
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 7 meses
Puntos: 0
Re: Ayuda con Do while y crear variable

cuando declaro la variable matriz pongo lo siguiente:

dim matriz(aux,2)

al hacer esto me da un error que dice que donde pone "aux" se esperaba una constante entera
Si cambio aux por un número (por ej. el 9) todo me funciona bien.

Necesito establecer el nº de filas por medio de una variable que contenga un valor numérico ya que no siempre la matriz tendría las mismas filas.

¿Cómo puedo declarar la matriz o array de esa manera?
  #7 (permalink)  
Antiguo 16/12/2006, 14:46
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: Ayuda con Do while y crear variable

mmmhhh, primera complicacion, lo que sucede con las matrices es que solamente puedes redimensionar el elemento externo, o sea las columnas, las filas no pueden ser redimensionadas, y como el error te lo da cuando le envias una variable pues espera una constante... quizas te convendra hacerlo con el objeto diccionario.

Ya nos diras mas cosas.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #8 (permalink)  
Antiguo 16/12/2006, 22:53
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
Re: Ayuda con Do while y crear variable

no te funcionaria esto:

dim matriz()
Redim matriz(aux,2)
  #9 (permalink)  
Antiguo 16/12/2006, 23:16
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: Ayuda con Do while y crear variable

Si funcionará pero nada más la primera vez, si por cualquier cosa, necesita redmensionar de nuevo, no se podrá, por eso no se lo recomendé, le agregas una rigidez innecesaria, pero si le sirve

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #10 (permalink)  
Antiguo 17/12/2006, 07:52
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
Re: Ayuda con Do while y crear variable

¿Asi si podria usarlo mas de una vez no?
Redim Preserve matriz(aux,2)
  #11 (permalink)  
Antiguo 17/12/2006, 10:51
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: Ayuda con Do while y crear variable

Pruebalo cambiando el valor de aux y me dices si puedes usarlo o no.
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #12 (permalink)  
Antiguo 17/12/2006, 12:17
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
Re: Ayuda con Do while y crear variable

Yo lo haria de esta forma:

<%Sub ContenidoMatrizHorizontal(ByVal arrvar)
Dim counter1
Dim counter2
Response.Write("<table border=""1"" bordercolor=""green"">" & vbCrLf)
For counter1 = 0 to UBound(arrvar, 1)
Response.Write(" <tr>" & vbCrLf)
For counter2 = 0 to UBound(arrvar, 2)
Response.Write("<td>" & arrvar(counter1,counter2) & "</td>" & vbCrLf)
Next
Response.Write(" </tr>" & vbCrLf)
Next
Response.Write("</table>" & vbCrLf)
End Sub
%>


<%
aux=20
contador=1
j=0
dim matriz()
Do while contador < aux
if contador=1 Then
Redim matriz(aux,2)
end if

if contador<>1 Then
Redim Preserve matriz(aux,2)
end if

'Response.write ("<br>C" & contador & "=" & contador/5)
matriz(j,0) = "C"&contador
matriz(j,1) = cstr(contador/5)
contador= contador + 1
j=j+1
Loop

CALL ContenidoMatrizHorizontal (matriz)
'Response.End()

Response.write "<hr>"

nuevoaux=5
contador=1
p=0
Redim matriz(nuevoaux,2)
Do while contador < nuevoaux
p=contador-1
Redim Preserve matriz(nuevoaux,2)
'Response.write ("<br>C" & contador & "=" & contador/5)
matriz(p,0) = "C"&contador
matriz(p,1) = cstr(contador/5)
contador= contador + 1
p=p+1
Loop
CALL ContenidoMatrizHorizontal (matriz)
%>
  #13 (permalink)  
Antiguo 17/12/2006, 12:37
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 7 meses
Puntos: 0
Re: Ayuda con Do while y crear variable

Con el Redim, he probado y me funciona muy bien cambiando el valor de aux.

No conocia esa propiedad

Muchas Gracias
  #14 (permalink)  
Antiguo 17/12/2006, 12:55
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: Ayuda con Do while y crear variable

Hay muchísimas maneras de resolver las cosas, unas mas eficientes, otras menos, unas más estables, otras no tanto, unas que te tienes que romper la cabeza, otras que si utilizas el objeto que mejor te ayude, lo puedes hacer más ordenadamente:

Código:
<%
Dim ObjDic
Dim aux
Dim i
Dim contador

Set ObjDic = Server.CreateObject("Scripting.Dictionary")
aux = 20
contador = 1

for i = contador to aux
	ObjDic.Add "C"&i, cstr(i/5)
next

%>
Despues solo cuentas tus items en el diccionario y los imprimes...Cuál es el interés en empeñarse en hacerlo de una manera sólo porque sí?

P.D. Niños, no imiten eso.
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #15 (permalink)  
Antiguo 18/12/2006, 03:58
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 7 meses
Puntos: 0
Re: Ayuda con Do while y crear variable

Gran aporte u_goldman

Esta muy bien el objeto diccionario. Lo tendré en cuenta también ya que lo veo muy útil.

Gracias
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 22:55.