Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    nome files in cartella: ordinamento

    devo leggere i files contenuti in una cartella, recuperandone il nome, il numero ed elencando la lista.

    con questo script faccio tutto questo (tralascio creazioni dell'oggetto e complementari)

    codice:
    a = ("0,1,2,3,4,5,6,7,8,9")
    myArray = Split(a,",")
    For w = 0 to Ubound(myArray)
    	For Each file in files 
    		if myArray(w) = left(file.name,1) then
    		Response.Write(file.name) &"
    "
    		end if
    	Next
    Next
    lo script ordina dal più piccolo (0.pdf) al più grande (9.pdf)..

    il problema è ovviamente che quando sono 10 mi salta l'ordianamento (0,1,10 ,2,3,4,5,6,7,8,9), idem per 100, tra poco saranno 1000 e non si capisce più nulla..

    è possibile ovviare al problema?
    oppure, in alternativa, è possibile ordinarli per data di creazione!?


  2. #2

    Re: nome files in cartella: ordinamento

    Originariamente inviato da andropoff
    devo leggere i files contenuti in una cartella, recuperandone il nome, il numero ed elencando la lista.

    con questo script faccio tutto questo (tralascio creazioni dell'oggetto e complementari)

    codice:
    a = ("0,1,2,3,4,5,6,7,8,9")
    myArray = Split(a,",")
    For w = 0 to Ubound(myArray)
    	For Each file in files 
    		if myArray(w) = left(file.name,1) then
    		Response.Write(file.name) &"
    "
    		end if
    	Next
    Next
    lo script ordina dal più piccolo (0.pdf) al più grande (9.pdf)..

    il problema è ovviamente che quando sono 10 mi salta l'ordianamento (0,1,10 ,2,3,4,5,6,7,8,9), idem per 100, tra poco saranno 1000 e non si capisce più nulla..

    è possibile ovviare al problema?
    oppure, in alternativa, è possibile ordinarli per data di creazione!?

    neussuno?!

  3. #3
    Utente di HTML.it L'avatar di hi4all
    Registrato dal
    Jun 2006
    Messaggi
    16
    Il metodo migliore è di metterli prima in un array per poi ordinarlo a piacimento.
    ciao

  4. #4
    Utente di HTML.it L'avatar di wallrider
    Registrato dal
    Apr 2003
    Messaggi
    2,755
    beh potresti immettere i nomi nell'array utilizzando prima la funzione format
    non ho la possibilità di provare il codice, però, quindi non so essere più preciso
    RIP Cicciobenzina 9/11/2010

    "Riseminaciceli, i ceci nell'orto"

  5. #5
    grazie 1000 purtroppo però sono argomenti a me sconosciuti..array, funzione format...


    qualcuno può quantomeno indirizzarmi?

  6. #6
    usa un recordset disconnesso. fa' una ricerca nel forum, ne abbiamo già parlato

  7. #7
    l'istruzione format sull'array sincerament enon la conosco, però da questo:

    codice:
    myArray=split(a,",")
    tu hai un array...usi un algoritmo di ordinamento di array che trovi in rete e poi lasci li il tuo ciclo


  8. #8
    Utente di HTML.it L'avatar di hi4all
    Registrato dal
    Jun 2006
    Messaggi
    16
    Questo codice ti dovrebbe aiutare a capire il metodo del recordset.
    codice:
        Dim rs As Recordset, fso As Scripting.FileSystemObject
        Dim NomeCartella As String
        
        NomeCartella = "c:\"
        Set rs = New Recordset
        rs.Fields.Append "Nome", adVarChar, 100
        rs.Open
        
        Set fso = New Scripting.FileSystemObject
        Set d = fso.GetFolder(NomeCartella)
        For Each f In d.Files
            rs.AddNew
            rs!nome = f.Name
            rs.Update
        Next
        Set fso = Nothing
        
        rs.MoveFirst
        rs.Sort = "Nome"
        Do Until rs.EOF
            Debug.Print rs!nome
            rs.MoveNext
        Loop
        rs.Close
        Set rs = Nothing

  9. #9
    Originariamente inviato da hi4all
    Questo codice ti dovrebbe aiutare a capire il metodo del recordset.
    codice:
        Dim rs As Recordset, fso As Scripting.FileSystemObject
        Dim NomeCartella As String
        
        NomeCartella = "c:\"
        Set rs = New Recordset
        rs.Fields.Append "Nome", adVarChar, 100
        rs.Open
        
        Set fso = New Scripting.FileSystemObject
        Set d = fso.GetFolder(NomeCartella)
        For Each f In d.Files
            rs.AddNew
            rs!nome = f.Name
            rs.Update
        Next
        Set fso = Nothing
        
        rs.MoveFirst
        rs.Sort = "Nome"
        Do Until rs.EOF
            Debug.Print rs!nome
            rs.MoveNext
        Loop
        rs.Close
        Set rs = Nothing
    sono riuscito a riprendere in mano il lavoro solo oggi..grazie per tutte le risposte prima di tutto...

    ho letto il codice che mi hai postato ma mi torna immediatamente un errore alla prima riga

    Dim rs As Recordset, fso As Scripting.FileSystemObject errore di compilazione prevista fine istruzione... perchè?!

  10. #10

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 © 2025 vBulletin Solutions, Inc. All rights reserved.