In passato abbiamo già visto algoritmi particolari per ordinare degli insiemi:
https://www.aspitalia.com/liste/usag/script.aspx?ID=44
https://www.aspitalia.com/liste/usag/script.aspx?ID=45
https://www.aspitalia.com/liste/usag/script.aspx?ID=46
Si tratta degli algoritmi noti a chi studia informatica e pertanto molto utilizzati.
L'esempio di oggi invece farà uso di una caratteristica non troppo sfruttata di ADO: i disconnected recordset.
Per prima cosa dunque creeremo un nuovo recordset, impostando tre campi: nome, dimensione e data.
In seguito popoleremo il recordset attraverso un ciclo, sfruttando l'oggetto FSO per popolarlo.
Infine, tramite la proprietà sort dell'oggetto recordset ordineremo i risultati appena ottenuti per data.
<% ' definizione del recordset set custRs = Server.CreateObject("ADODB.Recordset") custRs.Fields.Append "nome", 200, 300 ' adVarChar custRs.Fields.Append "dimensione", 2, 4 ' smallint custRs.Fields.Append "data", 7 ' Date custRs.Open ' popolamento Set FileObject = Server.CreateObject("Scripting.FileSystemObject") StrPath = Server.MapPath("/") Set f = FileObject.GetFolder(strPath) Set fc = f.SubFolders For Each f1 in fc custRs.AddNew custRs("nome") = f1.name custRs("data") = f1.DateCreated custRs("dimensione") = f1.size / 1024 Next Set fc = Nothing Set f = Nothing Set FileObject = Nothing ' Ordino in base al campo data custRs.Sort = "data DESC" Response.write ("<table border=1>") Response.write ("<tr><th>Nome<th>Dimensione<th>Data di creazione") ' Mostro il recordset appena ordinato Do until custRs.eof Response.Write ("<tr><td>" & custRs("nome") ) Response.Write ("<td>" & custRs("dimensione") & " KB" ) Response.Write ("<td>" & custRs("data") ) custRs.movenext loop Response.write ("</table>") ' libero risorse custRs.Close set custRs = Nothing %>
In sintesi, questo script mosterà in una tabella i nomi delle directory ordinate per data di modifica.
E' ovviamente possibile estendere questo stesso script per visualizzare anche i files, oltre per ordinare in base a campi differenti.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- Visualizzare contenuti Fullscreen con HTML5
- Leggere e scrivere su cookie tramite Blazor
- Richiamare programmaticamente le operazioni di aggiornamento, eliminazione e inserimento di FormView, DetailsView e GridView
- Realizzare siti sicuri con ASP.NET Web Pages
- Il web control DropDownList di ASP.NET
- Un helper method per replicare un template per ogni proprietà con ASP.NET MVC
- Operazioni di selezione su una DataTable
- Dependency injection in ASP.NET MVC 5 con Ninject
- Aumentare la scalabilità di ASP.NET Core Web API con caching client side
- Accedere con ASP.NET ad un documento XML creato dall'oggetto recordset di ADO e ASP