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

Ordenar Array en ASP

Estas en el tema de Ordenar Array en ASP en el foro de ASP Clásico en Foros del Web. Holas: Alguien sabe como ordenar un array en asp; o si en su defecto existe una funcion que realice esto. En PHp existe la funcion ...
  #1 (permalink)  
Antiguo 17/03/2005, 19:17
Avatar de acrosys  
Fecha de Ingreso: noviembre-2003
Ubicación: Santiago
Mensajes: 9
Antigüedad: 20 años, 5 meses
Puntos: 0
Ordenar Array en ASP

Holas:

Alguien sabe como ordenar un array en asp; o si en su defecto existe una funcion que realice esto.
En PHp existe la funcion ksort() -creo que asi se llama- pero no se si existe alguna similar para asp.

Saludox
  #2 (permalink)  
Antiguo 18/03/2005, 02:13
 
Fecha de Ingreso: noviembre-2004
Mensajes: 92
Antigüedad: 19 años, 5 meses
Puntos: 0
Creo que deberás implementar tu mismo el algoritmo. Busca en google algún algoritmo de ordenación.
  #3 (permalink)  
Antiguo 18/03/2005, 10:33
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
No, "nativamente" ASP/VBScript no trae ningúna función para ordenar un array como PHP. Así que, como te comenta iPunto, lo tenés que hacer vos.

Buscando en google vbscript sort array llegué a ésta interesante propuesta: How can I quickly sort a VBScript array? con una comparativa entre, por un lado, usar un "método de burbuja tradicional" en vbscript y, por el otro, pasarle ese array de vbscript a una función JScript (server-side, no Javascript) para eu ésta última lo ordene. Según los resultados, gana en eficiencia la segunda opción por lejos.

Igual te dejo un script modificado que uso generalmente para ordenar archivos (por fecha, por tipo, por tamaño, por nombre, etc) que lo que hace es meter el array en un recordset, ordenarlo, y luego mostrarlo ocmo si de un recordset a una base de datos se tratara:



Código:
<%
Letras = "q,w,e,r,t,y,u,i,o,p,a,s,d,f,g,h,j,k,l,ñ,z,x,c,v,b,n,m"
arrLetras = Split(Letras, ",")


CONST adFldIsNullable = &H00000020
CONST adVarChar = 200
CONST adOpenDynamic = 2
CONST adUseClient = 3
 
Set Rs = Server.CreateObject("ADODB.Recordset")

Rs.CursorLocation = adUseClient
Rs.CursorType = adOpenDynamic
Rs.Fields.Append "Letra", adVarChar, 255, adFldIsNullable
Rs.open

For i = 0 To UBound(arrLetras)
	Rs.AddNew
	Rs.Fields("Letra") = arrLetras(i)
	Rs.update
Next

Rs.Sort = "Letra"

While Not Rs.EOF
	Response.Write Rs("Letra") & "<br>"
	Rs.MoveNext
Wend

Rs.Close
Set Rs = Nothing
%>
__________________
...___...
  #4 (permalink)  
Antiguo 18/03/2005, 10:38
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
Ah, me olvidaba. Con el script anterior, si en vez de darle una salida HTML lo que querés hacer es regenerar el array ordenado, cambiás lo siguiente...

Código:
While Not Rs.EOF
	Response.Write Rs("Letra") & "<br>"
	Rs.MoveNext
Wend
por...

Código:
While Not Rs.EOF
	arrLetrasOrdenadas =  arrLetrasOrdenadas & ","
	Rs.MoveNext
Wend
Estaría bárbaro usar Rs.GetRows para ello... pero no entiendo por qué nunca me funcionó GetRows con un récordset creado así.
__________________
...___...
  #5 (permalink)  
Antiguo 26/01/2012, 06:22
 
Fecha de Ingreso: agosto-2007
Mensajes: 79
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Ordenar Array en ASP

Hola, y como sería ese mismo script pero para ordenar numeros en orden asc o desc en vez de letras. ??
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 03:57.