Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684

    ciclo per scripting.FileSystemObject

    Voglio impostare un ciclo fino a tot volte, infatti sto creando una paginazione. E' la prima volta che mi imbatto nella classe FSO e gestire una paginazione.

    Questo e' lo script senza paginazione:
    codice:
    For Each file in files
    IF colonna > numColonne THEN
    	colonna = 1
    %>
    <tr><td height = "200px" bgcolor = "#666666">
    <%
    ELSE
    %>
    <td height = "200px" bgcolor = "#666666">
    <%
    END IF
    %>
    [img]<%response.write Cartella & [/img]" width="200">
    
    <%
    Response.Write file.name
    ' Controllo per chiusura riga e tabella
    IF colonna = numColonne THEN
    %>
    </td></tr>
    <%
    ELSE
    %>
    </td>
    <%
    END IF
    colonna = (colonna + 1)
    Next
    Con questo ciclo leggo tutti i file di una cartella, immagini, e li visualizzo incolonnandoli per numero tot colonne. Il tutto va a meraviglia.

    Ora voglio creare un ciclo
    DO WHILE per visualizzare, per pagina max tot immagini, in questo caso 9.

    Questa e' la prima parte del codice antecedente il ciclo:
    codice:
    If Request.QueryString("pagina") = "" Then 
                    paginaCorrente = 1 
    Else 
                    paginaCorrente = CInt(Request.QueryString("pagina")) 
    End If 
    
    Set fileCreate = CreateObject("Scripting.FileSystemObject")
    Set fileGet = fileCreate.GetFOlder(Server.MapPath(Cartella))
    Set files = FileGet.Files
    
    numColonne = 3 'Inserire il numero delle colonne
    colonna = 1
    numfile = 0
    numImmagini = 9 'Numero di file da visualizzare per pagina
    
    For Each file in files
    numfile = (numfile + 1)
    NEXT
    
    ' Rileva il numero di pagine totali per visualizzare tutti i file 
    IF numFile mod numImmagini = 0 THEN 'Se il numero è intero
    pagineTotali = numFile/numImmagini 'Ottengo il numero di pagine necessarie
    ELSE ' quindi il risultato è un numero decimale
    pagineTotali = int(numfile/numImmagini)+1 'Ottengo il numero interno con eccesso
    END IF
    'STampa a video il numero necessario di pagine per visualizzare i file
    'response.write "Il numero di pagine necessario per la visualizzazione è:" & pagineTotali
    
    IF paginaCorrente > numFile Then
    	paginaCorrente = numFile
    END IF
    IF paginaCorrente < 1 Then
    	paginaCorrente = 1
    END IF
    
    IF numFile = 0 Then
    Response.Write ("Nessun file presente!")
    ' In caso ci siano file nella cartella
    ELSE
    fileAttuale = 0
    %>
    
    <table cellpadding="0" cellspacing="5" border="0" bgcolor = "#000000">
    <tr>
    Quindi vorrei aggiungere un ciclo tipo:
    do while "fileAttuale < numImmagini"
    ...
    loop

    Ma come posso sostituirlo al:
    For Each file in files
    ...
    next

  2. #2
    prova a mettere (ma non sono sicuro)

    codice:
    daVedere=9   'numero di foto massimo da visualizzare
    
    if ubound(files)>daVedere then
    numMax=daVedere
    else
    numMax=ubound(files)
    end if
    
    for i=0 to ubound(files)
    ......
    next
    solo che non ho mai utilizzato l'oggetto files come un array, ma visto che risponde al for each dovrebbe andar bene il metodo ubound.


  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    Ho risolto, tramite array anche se lo sto capendo meglio ora.
    Ecco cosa ho fatto

    Dim nomeFile()

    x = 0
    For Each file in files
    reDim preserve nomefile(x)
    nomefile(x) = file.name
    numfile = (numfile + 1)
    x = x +1
    NEXT

    min = (numImmagini * paginaCorrente) - numImmagini
    max = (numImmagini * paginaCorrente) - 1
    If max >= numFile - 1
    END IF

    FOR i = min to max
    ...
    response.write nomefil(i)
    ...
    NEXT

    Ora devo aggiustare il controlla della pagina...
    Ho provato con l'UBOUND ma non va mi sa errore.

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.