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

Como ordenar un arreglo.

Estas en el tema de Como ordenar un arreglo. en el foro de ASP Clásico en Foros del Web. Tengo el siguiente arreglo de memoria videos(200,2) en videos(x,0) tengo el nombre de los archivos de un direcotrio = file.Name en videos(x,1) tengo la fecha ...
  #1 (permalink)  
Antiguo 21/09/2004, 09:29
 
Fecha de Ingreso: abril-2002
Mensajes: 25
Antigüedad: 22 años, 1 mes
Puntos: 0
Como ordenar un arreglo.

Tengo el siguiente arreglo de memoria

videos(200,2)

en videos(x,0) tengo el nombre de los archivos de un direcotrio = file.Name
en videos(x,1) tengo la fecha de creación del archivo = file.DateCreated

¿Cómo puedo ordenar este arreglo de memoria en forma ascendente o descentente por su fecha de creación? videos(x,1).
¿Se puede?, ¿Hay una función para ello?.

Este arreglo de memoria lo cree a partir de los archivos existentes en un directorio y necesito saber cual fue el último archivo creado, penúltimo y así sucesivamente.

Les agradezco sus comentarios.

Saludos cordiales.
  #2 (permalink)  
Antiguo 21/09/2004, 09:55
Avatar de Saruman  
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 21 años
Puntos: 5
chequea este:

listado.asp

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<% 
	Dim strThisPage
	strThisPage = Request.ServerVariables("SCRIPT_NAME")
	strThisPage = Right(strThisPage, Len(strThisPage) - 1)
	
	'Path To Folder That holds Files To Download Here
	'Default is the current Folder
	FILE_FOLDER = StripFileName(Request.ServerVariables("PATH_TRANSLATED"))
	
	'Constants
	Const adVarChar = 200
	Const adInteger = 3
	Const adDate = 7
	Const adFileTime = 64
	Const adNumeric = 131
	
%>
<HTML>
<HEAD>
	<TITLE>File Download List For <%= Date() %></TITLE>
	<STYLE TYPE="TEXT/CSS">
	.TabHeader { Font-Family: Arial; Font-Weight: Bold; Font-Size: 12px; Background: Silver }
	.DataCol { Font-Family: Verdana; Font-Size: 12px }
	</STYLE>
	<SCRIPT>
		function msg() {
			self.status = 'File Downloads For <%= Date() %>';
			return true
		}
	</SCRIPT>
</HEAD>

<BODY onLoad="msg()">
<TABLE BORDER=1 ID=tblFileData BACKGROUND="">
	<TR>
		<TD CLASS=TabHeader><A HREF="sSort.asp?sort=Name">File Name</A></TD>
		<TD CLASS=TabHeader><A HREF="sSort.asp?sort=Type">File Type</A></TD>
		<TD CLASS=TabHeader><A HREF="sSort.asp?sort=Size">File Size</A></TD>
		<TD CLASS=TabHeader><A HREF="sSort.asp?sort=Path">File Path</A></TD>
		<TD CLASS=TabHeader><A HREF="sSort.asp?sort=Date">Last Modified</A></TD>
	</TR>
<%  
	strSortHeader = Request.QueryString("sort")
	
	IF strSortHeader = "" Then
		Call GetAllFiles("")
	Else
		Call GetAllFiles(strSortHeader)
	End IF
%>


</TABLE>
</BODY>
</HTML>
<%  
'8*****************************************8
' The next release will have sort routines 
' That is why the column headers are links
' They are hooks to add the sorts into.
'8****************************************8


Sub GetAllFiles(strSortBy)
	Dim oFS, oFolder, oFile
	Set oFS = Server.CreateObject("Scripting.FileSystemObject")
		
	'Set Folder Object To Proper File Directory
	Set oFolder = oFS.getFolder(FILE_FOLDER)
	
	Dim intCounter
	
	intCounter = 0
	
	IF strSortBy = "" Then 'UnSorted (default)
		Dim FileArray()
		ReDim Preserve FileArray(oFolder.Files.Count, 5)
	
		For Each oFile in oFolder.Files
			strFileName = oFile.Name
			strFileType = oFile.Type
			strFileSize = oFile.Size
			strFilePath = oFile.Path
			strFileDtMod = oFile.DateLastModified
				
			FileArray(intCounter, 0) = strFileName
			FileArray(intCounter, 1) = strFileName
			FileArray(intCounter, 2) = strFileType
			FileArray(intCounter, 3) = strFileSize
			FileArray(intCounter, 4) = strFilePath
			FileArray(intCounter, 5) = strFileDtMod
		
			intCounter = (intCounter + 1)
		Next
		
		intRows = uBound(FileArray, 1)
		intCols = uBound(FileArray, 2)
	
		For x = 0 To intRows -1
			Echo("<TR>")
			For z = 0 To intCols
				If z > 0  Then
					BuildTableCol(FileArray(x, z))
				End IF
			Next
			Echo("</TR>")
		Next
		
	Else
	'Sorted List
	
		Set oRS = Server.CreateObject("ADODB.Recordset")
		oRS.Fields.Append "Name", adVarChar, 500
		oRS.Fields.Append "Type", adVarChar, 500
		oRS.Fields.Append "Size", adInteger
		oRS.Fields.Append "Path", adVarChar, 500
		oRS.Fields.Append "Date", adFileTime
		oRS.Open
		
		For Each oFile in oFolder.Files
			strFileName = oFile.Name
			strFileType = oFile.Type
			strFileSize = oFile.Size
			strFilePath = oFile.Path
			strFileDtMod = oFile.DateLastModified
			
			oRS.AddNew
			oRS.Fields("Name").Value = strFileName
			oRS.Fields("Type").Value = strFileType
			oRS.Fields("Size").Value = strFileSize
			oRS.Fields("Path").Value = strFilePath
			oRS.Fields("Date").Value = strFileDtMod
		Next
		
		oRS.Sort = strSortBy & " ASC"
		
		Do While Not oRS.EOF
			Echo("<TR>")
				BuildTableCol(oRS("Name"))
				BuildTableCol(oRS("Type"))
				BuildTableCol(oRS("Size"))
				BuildTableCol(oRS("Path"))
				BuildTableCol(oRS("Date"))
			Echo("</TR>")
		oRS.MoveNext
		Loop			
		
		oRS.Close
		Set oRS = Nothing
	End IF
	
	EchoB("<B>" & oFolder.Files.Count & " Files Available</B>")
		
	Cleanup oFile
	Cleanup oFolder
	Cleanup oFS
End Sub

Function Echo(str)
	Echo = Response.Write(str & vbCrLf)
End Function

Function EchoB(str)
	EchoB = Response.Write(str & "<BR>" & vbCrLf)
End Function

Sub Cleanup(obj)
	IF isObject(obj) Then
		Set obj = Nothing
	End IF
End Sub

Function StripFileName(strFile)
	StripFileName = Left(strFile, inStrRev(strFile, "\"))
End Function

Sub BuildTableCol(strData)
	Echo("<TD CLASS=DataCol>" & strData & "</TD>")
End Sub

'Not implemented
Sub BuildTableRow(arrData)
	Dim intCols
	intCols = uBound(arrData)
	For y = 0 To intCols
		Echo("<TD CLASS=DataCol>" & arrData(y) & "</TD>")
	Next
End Sub

%>
__________________
Saruman

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.
  #3 (permalink)  
Antiguo 21/09/2004, 10:18
 
Fecha de Ingreso: abril-2002
Mensajes: 25
Antigüedad: 22 años, 1 mes
Puntos: 0
Gracias Saruman.

Voy a checarlo.
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 21:27.