ce un modo veloce per avere in un array tutti i file di una data directory senza utilizzare la filelistbox? grazie![]()
ce un modo veloce per avere in un array tutti i file di una data directory senza utilizzare la filelistbox? grazie![]()
Prova così:
Se vuoi la lista in un file, guarda questa discussione.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
Ciao
... e non usare while wend è una sintassi deprecata
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!
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
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...
...non si fa altro che ridimensionare l'array di un elemento alla volta mantenendo i valori precedenti.codice:ReDim Preserve Arr(UBound(Arr) + 1&)
(L'UBound restituisce il numero d'elementi dell'array)
... e non usare while wend è una sintassi deprecata