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

Funcion que devuelva un array

Estas en el tema de Funcion que devuelva un array en el foro de ASP Clásico en Foros del Web. Hola, quiero hacer una funcion q devuelva un array, pero no lo consigo de ninguna manera Código: Function DameUnArray Dim lista 'o lista() o lista(3), ...
  #1 (permalink)  
Antiguo 23/10/2007, 08:15
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 20 años, 5 meses
Puntos: 9
Funcion que devuelva un array

Hola, quiero hacer una funcion q devuelva un array, pero no lo consigo de ninguna manera
Código:
        Function DameUnArray
            Dim lista 'o lista() o lista(3), da igual lo q ponga
            
            lista = Request.Form("txHidden") 'Se supone que hay varios de estos campos

            DameUnArray = lista
        End Function
.................
   Dim vectorDeCampos
   Redim vectorDeCampos(Request.Form("txHidden").count)
    vectorDeCampos = DameUnArray()
  Response.write(vectorDeCampos (0))
He probado a declarar Dim lista, Dim lista(), Redim, lo que sea, solo consigo "No coniciden los tipos", Google no ha sido de mucha ayuda

Ayuda por favor
  #2 (permalink)  
Antiguo 23/10/2007, 08:23
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
Re: Funcion que devuelva un array

Haz esto en el archivo asp que recibe los datos del formulario:

for each campo in request.Form
response.write(campo & ": " & request.Form(campo) & "<br />")
next


y nos pones aqui el resultado. A ver si podemos echarte una mano



Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #3 (permalink)  
Antiguo 23/10/2007, 08:50
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Re: Funcion que devuelva un array

eh?

La función que regresa un Array es precisamente Array

Saludos
  #4 (permalink)  
Antiguo 23/10/2007, 09:06
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Re: Funcion que devuelva un array

Si tienes varios campos llamados txtHidden, solo tienes que hacerles un split, pues llegan separados por ", "

Código:
arreglo = split(Request.Form("txtHidden"), ", ")
Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 23/10/2007, 09:18
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 20 años, 5 meses
Puntos: 9
Re: Funcion que devuelva un array

Cita:
arreglo = split(Request.Form("txtHidden"), ", ")
Ya lo probé, pero que ocurre si el campo tiene comas??

Cita:
La función que regresa un Array es precisamente Array
Si, pero mi problema es hacer que una funcion devuelva eso, y asignar ese array a una variable llamando a la funcion

Cita:
Haz esto en el archivo asp que recibe los datos del formulario:

for each campo in request.Form
response.write(campo & ": " & request.Form(campo) & "<br />")
next
Estoy haciendo una prueba con 3 campos llamados igual, si hago como dices request.Form(campo) dentro de un bucle todo funciona bien, mi problema viene al encapsular esto dentro de una funcion

A ver si me explico mejor:

Quiero hacer una función que lea los datos de post, que en ocasiones son arrays (o varios con el mismo nombre) y aplique ciertos filtros, como cambiar " por & q u o t ; etc..

En el caso de varios campos con el mismo nombre podria hacer:

Código:
valor(i) = Funcion_Que_Suplanta_A_Request_Form(campo, i)
Pero creo que sería más correcto si consigo hacer:
Código:
valor() = Funcion_Que_Suplanta_A_Request_Form(campo)
Creo q es un problema de sintaxis, como delacrar la variable dentro y fuera de la funcion: Dim lista o Dim lista(), ¿hay q hacer Redim o el propio Request.form() le da una longitud??

Ya probe con todas sus soluciones, pero no me funcionan

Gracias
  #6 (permalink)  
Antiguo 23/10/2007, 09:40
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Re: Funcion que devuelva un array

Cita:
Iniciado por PosProdukcion Ver Mensaje
Ya lo probé, pero que ocurre si el campo tiene comas??
Esto te sirve?

Código:
<%
isPostBack = len(Request.Form("ispostback")) > 0

if not isPostBack then
   %>
   <form action="test.asp" method="post">
         <input type="hidden" name="isPostBack"  value="1" />
         <%
         for i = 0 to 4
             %><input type="text" value="<%=i%>" name="txtHidden" /><%
         next
         %>
         <input type="submit" value="enviar" />
   </form>
<%
else
    Dim arr()
    x = Request.Form("txtHidden").Count-1
    for i = 0 to x
       Redim Preserve arr(i)
       arr(i) = Request.Form("txtHidden")(i+1)
    next

    for i = 0 to uBound(arr)
        Response.Write(arr(i) & "<br />")
    next

end if
%>
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #7 (permalink)  
Antiguo 23/10/2007, 10:13
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 20 años, 5 meses
Puntos: 9
Re: Funcion que devuelva un array

Perfecto, muchas gracias!

Así quedó al final:

Código:
    Function DameElArray()
        Dim arr()
        x = Request.Form("txtHidden").Count-1
        
        for i = 0 to x
           Redim Preserve arr(i)
           arr(i) = Request.Form("txtHidden")(i+1)
        next
        
        DameElArray = arr
    End Function

   .................................

        Dim elArrayObtenido
        
        elArrayObtenido = DameElArray()
        
        for i = 0 to uBound(elArrayObtenido)
            Response.Write("<b>(" & i & "): "& elArrayObtenido(i) & "<br />")
        next
Gracias a todos
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 15:39.