Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [VB6] - Lista file

  1. #1

    [VB6] - Lista file

    ce un modo veloce per avere in un array tutti i file di una data directory senza utilizzare la filelistbox? grazie

  2. #2
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Prova così:
    codice:
    Const Cartella = "C:\Documenti\ICE\"
    Dim FileName As String
    Dim Arr() As String
    
    
    ReDim Arr(0)
    FileName = Dir(Cartella, vbNormal + vbSystem + vbHidden + vbReadOnly)
    Do Until (Len(FileName) = 0&)
      ReDim Preserve Arr(UBound(Arr) + 1&)
      Arr(UBound(Arr)) = FileName
      FileName = Dir
    Loop
    If (UBound(Arr) > 0&) Then
      ReDim Preserve Arr(UBound(Arr) - 1&)
    End If
    Se vuoi la lista in un file, guarda questa discussione.

    Ciao
    ... e non usare while wend è una sintassi deprecata

  3. #3
    Tnx! cmq usando il tuo script si mangia un file della lista

    ho risolto cancellando l'ultimo if... mi spiegheresti una cosa? cosa volgliono dire i + 1$, + 2$?

    (mi riferisco soprattutto alla $ finale)

    grazie ciao!

  4. #4
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Hai ragione, l'ultimo controllo è inutile ed errato.
    Il carattere alla destra del numero è una e commerciale e rappresenta la conversione che il compilatore deve seguire.
    In questo caso la funzione UBound restituisce un valore Long, per questo motivo i valori che interagiscono con questo valore è meglio che siano dei Long (cioè &).
    ... e non usare while wend è una sintassi deprecata

  5. #5
    tutto chiaro, il ReDim invece?

  6. #6
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    La ReDim è una funzione usata per ridimensionare un array.
    In particolare aggiungendo il suffisso Preserve, il ridimensionamento avviene mantenendo i valori dell'array.
    Ciò significa che ridimensionando un array di 10 elementi definiti, in modo da averne uno da 20 senza l'utilizzo del Preserve, si avrà un nuovo array da 20 elementi.
    Quindi, utilizzando l'istruzione...
    codice:
    ReDim Preserve Arr(UBound(Arr) + 1&)
    ...non si fa altro che ridimensionare l'array di un elemento alla volta mantenendo i valori precedenti.
    (L'UBound restituisce il numero d'elementi dell'array)
    ... e non usare while wend è una sintassi deprecata

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.