Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Visualizzare ed ordinare file in una cartella

    ciao!
    utilizzo questo comodo script (trovato sul forum) per visualizzare, in una pagina asp, i file di una cartella:
    codice:
    	
    dir =  "/IMMAGINI"
    Set file1 = CreateObject("Scripting.FileSystemObject")
    Set file2 = file1.GetFolder(server.mappath(dir))
    Set file3 = file2.Files
    cont = 0
    For Each file in file3
    funziona, solo me li visualizza in ordine alfabetico, li vorrei in ordine di data.
    si può?

  2. #2
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,035
    Certo che si può...
    ma che data? quella di creazione? di ultima modifica? di ultimo accesso?

  3. #3
    Originariamente inviato da Lak3d
    Certo che si può...
    ma che data? quella di creazione? di ultima modifica? di ultimo accesso?
    creazione o al max ultima modifica.

  4. #4
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,035
    http://www.aspitalia.com/script/393/...rdset-ADO.aspx

    Se non capisci qualcosa chiedi pure...
    ps: ti basta cambiare DateCreated con LastModifies e avrai per ultima modifica...

  5. #5
    per questo è l'ordinamento del recordset, giusto?
    codice:
    custRs.Sort = "data DESC"
    io lo vorrei dei file nella cartella...

    dalla pagina che hai postato si prende i valori in un db e poi li mostra ordinati, io vorrei solamente mostrare i file di una dir, ordinati per data di creazione...

  6. #6
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,035
    Infatti è quello che fa, ma per ordinarli li sbatte in un database contenente un campo apposito Data/Ora... proprio perchè non esiste una funzione che ordina per data...

    Se hai un attimo di pazienza provo a costruirtela...

  7. #7
    Originariamente inviato da Lak3d
    Infatti è quello che fa, ma per ordinarli li sbatte in un database contenente un campo apposito Data/Ora... proprio perchè non esiste una funzione che ordina per data...

    Se hai un attimo di pazienza provo a costruirtela...
    E' perchè non volevo passare da un db, cmq grazie se hai tempo e voglia ogni aiuto è ben accetto!!!

  8. #8
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,035
    Eccola :berto:

    codice:
    <%
    Set fso=CreateObject("Scripting.FileSystemObject")
    set Folder= fso.GetFolder("c:\inetpub\wwwroot")
    Set files= Folder.Files
    
    i=0
    For each F in files
       Redim Preserve Arr(i)
       Arr(i)= F.DateCreated & " " & F.Name
       i=i+1
    Next
    
    For i=0 to Ubound(Arr)
       Redim Preserve str(i)
       str(i)=Cdbl(Replace(Mid(Arr(i),7,4) & Mid(Arr(i),4,2) & Left(Arr(i),2) & Replace(Mid(Arr(i),12,8), ".", "")," ",""))
    Next
    
    For j=0 to Ubound(str)-1
       For x=0 to Ubound(str)-1
          if str(x)>str(x+1) then
             temp=str(x)
             temp2=Arr(x)
             str(x)=str(x+1)
             Arr(x)=Arr(x+1)
             str(x+1)=temp
             Arr(x+1)=temp2
          End if   
       Next
    Next
    
    For i=0 to Ubound(Arr)
       Response.Write Arr(i) & "
    "
    Next
    %>
    Non faccio altro che prendere data e ora, impostarle in formato numerico anno/mese/giorno/ore/minuti/secondi e lordino i numeri risultanti...

    Comunque credimi, è tutto tempo perso quando puoi farlo direttamente nel db, sopratutto se hai tanti file da ordinare...

    ps: uso il bubblesort per farla smeplice, è un algoritmo di ordinamento terra terra...
    Se vuoi stamparli al contrario non devi far altro che scorrere al contrario l'array:

    codice:
    For i=Ubound(Arr) to 0 Step -1
       Response.Write Arr(i) & "
    "
    Next
    Ciaooo!

  9. #9
    Originariamente inviato da Lak3d
    Eccola :berto:

    codice:
    <%
    Set fso=CreateObject("Scripting.FileSystemObject")
    set Folder= fso.GetFolder("c:\inetpub\wwwroot")
    Set files= Folder.Files
    
    i=0
    For each F in files
       Redim Preserve Arr(i)
       Arr(i)= F.DateCreated & " " & F.Name
       i=i+1
    Next
    
    For i=0 to Ubound(Arr)
       Redim Preserve str(i)
       str(i)=Cdbl(Replace(Mid(Arr(i),7,4) & Mid(Arr(i),4,2) & Left(Arr(i),2) & Replace(Mid(Arr(i),12,8), ".", "")," ",""))
    Next
    
    For j=0 to Ubound(str)-1
       For x=0 to Ubound(str)-1
          if str(x)>str(x+1) then
             temp=str(x)
             temp2=Arr(x)
             str(x)=str(x+1)
             Arr(x)=Arr(x+1)
             str(x+1)=temp
             Arr(x+1)=temp2
          End if   
       Next
    Next
    
    For i=0 to Ubound(Arr)
       Response.Write Arr(i) & "
    "
    Next
    %>
    Non faccio altro che prendere data e ora, impostarle in formato numerico anno/mese/giorno/ore/minuti/secondi e lordino i numeri risultanti...

    Comunque credimi, è tutto tempo perso quando puoi farlo direttamente nel db, sopratutto se hai tanti file da ordinare...

    ps: uso il bubblesort per farla smeplice, è un algoritmo di ordinamento terra terra...
    Se vuoi stamparli al contrario non devi far altro che scorrere al contrario l'array:

    codice:
    For i=Ubound(Arr) to 0 Step -1
       Response.Write Arr(i) & "
    "
    Next
    Ciaooo!
    ed io che la pensavo più semplice!
    grazie mille, ti devo una birretta!!!
    dopo lo provo e ti faccio sapere, grazie 1000

  10. #10
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,035
    beh, bastava che chi ha creato il FileSystemObject metteva un metodo in più e dovevi solo richiamarlo con la notazione punto Data.Ordina()... dietro ad ogni metodo comunque ci sono funzioni.

    diciamo che potrebbe essere ottimizzata volendo... basterebbe innanzitutto usare algoritmi di ordinamento più efficienti, e invece di gestire due array, gestirne uno soltanto anche se a conti fatti poi una volta ordinato lo devi ribaltare per tornare al formato iniziale.
    Io ne uso due, l'originale e quello di supporto nel quale cambio formato alle date e le trasformo in un valore numerico per ordinarle. Nel mometo che ordino i valori ordino contemporaneamente anche le stringhe originali...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.