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

crear variables partiendo de un split (cadena)

Estas en el tema de crear variables partiendo de un split (cadena) en el foro de ASP Clásico en Foros del Web. Ojalá alguien sepa como hacer esto y me pueda ayudar. Recojo un campo de un formulario y este me manda una cadena así: categorias=1,4,5,7,5 esta ...
  #1 (permalink)  
Antiguo 10/04/2002, 23:35
Avatar de impio_joe  
Fecha de Ingreso: mayo-2001
Ubicación: México
Mensajes: 69
Antigüedad: 24 años
Puntos: 0
crear variables partiendo de un split (cadena)

Ojalá alguien sepa como hacer esto y me pueda ayudar.
Recojo un campo de un formulario y este me manda una cadena así:
categorias=1,4,5,7,5
esta cadena manda desde 1 a máximo 5 valores separados por una coma, necesito crear 5 variables de VBScript que sean:
Categoria1=
Categoria2=
Categoria3=
Categoria4=
Categoria5=
y que estas variables tomen los valores de split (categoria,",") el codigo que tengo es este:
<%
palabras=split(request.form("categorias" ),",")

Categoria1=palabras(0)
Categoria2=palabras(1)
Categoria3=palabras(2)
Categoria4=palabras(3)
Categoria5=palabras(4)
%>
Esto funciona bien siempre y cuando se manden los 5 valores en la cadena categorias por ejemplo
categorias=2,6,5,4,7
pero si no se mandan los 5 valores por ejemplo:
categorias=4,5
me marca un error en este caso en la variable Categoria3 me dice que se sale de la dimensión
como puede hacer para crear siempre las 5 variables: Categoria1,Categoria2,Categoria3,Categoria4,Catego ria5 y si no existe valor para alguna de ellas(array menor a 5) que le asigne un valor de cadena vacia ""?

Espero haberme explicado ojalá alguien conozca alguna solución y me pueda ayudar

Gracias.

Atte: Impio_joe
  #2 (permalink)  
Antiguo 10/04/2002, 23:43
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Re: crear variables partiendo de un split (cadena)

no tengo una solución 'linda'... pero si le metés un "on error resume next" antes de la línea que marca error y que el script ignore el error lógico y continúe con su tarea?
  #3 (permalink)  
Antiguo 11/04/2002, 00:40
Avatar de MariHo  
Fecha de Ingreso: abril-2001
Mensajes: 156
Antigüedad: 24 años, 1 mes
Puntos: 1
Re: crear variables partiendo de un split (cadena)

No te voy a dar el código completo porque no camparto la idea de dar el pescado a la persona, sino más bien de enseñarle a pescar.

Puedes recorrer el vector creado con el split de esta manera:


categorias= Split(categorias, ",")


For h=0 to UBound(categorias, 1)
response.write (categorias(h))
'O haz lo que quieras
Next


El UBound lo que hace es sacar el mayor índice de tu vector, el for lo recorre uno a uno, juega con este código para encontrar solución a tu problema.


saludos

MariHo
;¬)
  #4 (permalink)  
Antiguo 11/04/2002, 08:36
Avatar de impio_joe  
Fecha de Ingreso: mayo-2001
Ubicación: México
Mensajes: 69
Antigüedad: 24 años
Puntos: 0
Re: crear variables partiendo de un split (cadena)

Gracias MARIHO y DAZUZAGA, ya logré lo que quería!
De esta manera siempre son creadas las 5 variables que es lo que quería y si no existe valor para alguna se le asigna una cadena vacia y no me marca error!

El código quedó así por si a alguien le sirve o por si alguien tiene una solución mas sencilla y quiere compartirla! ;)

<%
palabras=split(request.form("cadenacategorias "),",")

Numero=UBound(palabras, 1)

Select case Numero

Case 4
Categoria1=palabras(0)
Categoria2=palabras(1)
Categoria3=palabras(2)
Categoria4=palabras(3)
Categoria5=palabras(4)
Case 3
Categoria1=palabras(0)
Categoria2=palabras(1)
Categoria3=palabras(2)
Categoria4=palabras(3)
Categoria5=""
Case 2
Categoria1=palabras(0)
Categoria2=palabras(1)
Categoria3=palabras(2)
Categoria4=""
Categoria5=""
Case 1
Categoria1=palabras(0)
Categoria2=palabras(1)
Categoria3=""
Categoria4=""
Categoria5=""
Case 0
Categoria1=palabras(0)
Categoria2=""
Categoria3=""
Categoria4=""
Categoria5=""
Case else%>
<SCRIPT>alert ('Debe escojer la(s) categorías para su producto, no debe seleccionar más de 5!')
javascript:window.history.back();
</SCRIPT>
<%
End select
%>

El Case else es sólo como precaución porque el formulario que envia la cadena de las categorias está validado en Jscript para mandar mínimo un valor y no mas de 5!

Una vez mas gracias Mariho y Dazuzaga! :)

Atte: Impio_joe!
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 09:58.