Oppure

Loading
Questo topic e' stato chiuso dal moderatore.
04/08/09 10:02
Master_VB
so che è chiedere un pò troppo ma vorrei spiegato questo codice:
public Function ListaFiles(ByVal Cartella As String, ByVal Estensione As String) As String()
        Dim i As Integer
        Dim n As String
        Dim f() As String = System.IO.Directory.GetFiles(Cartella, Estensione)
        'restituisce un array contenente i nomi dei file con estensione escluso il percorso
        For i = 0 To f.Length - 1
            f(i) = f(i).Substring(f(i).LastIndexOf("\") + 1)
        Next
        'elimina l'estensione ai nomi dei file
        For i = 0 To f.Length - 1
            n = f(i).LastIndexOf(".")
            'se minore di 0 vuol dire che c'è un file senza estensione
            'senza ciclo condizionale restituisce un eccezione
            If n > 0 Then
                'elimina i caratteri a partire dall'ultimo punto
                f(i) = f(i).Remove(n)
            End If
        Next
        Return f
    End Function


che toglie estensione e percorso a una lista di file ottenuti

e poi per usarlo ad esempio in una listbox usa questo codice:

ListBox1.Items.AddRange(ListaFiles(percorso, "*.*"))


vorrei spiegato linea per linea il codice le funzioni tipo lenght substring e tutti quei "casini" parentesi in parentesi e com fa ad usarlo nella seconda parte del codice pernche non ci ho capito ma vorrei saperla fare io uan cosa così non chiedere i codici agli altri:pat:

se qualcuno ha questa immensa pazienza mi fa un favore ciao
aaa
04/08/09 11:26
theprogrammer
Beh ... piuttosto che spiegare linea per linea un programma, ti consiglio di studiare il linguaggio da uno o piu' libri ... fidati ... e' il sistema giusto per imparare.
aaa
04/08/09 12:15
manvb.net
Si, ti conviene comprare un bel libro, comunque, ecco il codice commentato linea per linea:

Public Function ListaFiles(ByVal Cartella As String, ByVal Estensione As String) As String()
        Dim i As Integer 'Dichiara una variabile i di tipo Integer
        Dim n As String 'Dichiara una variabile n di tipo Integer
        Dim f() As String = System.IO.Directory.GetFiles(Cartella, Estensione)
        'Dichiara un array di string e lo riempie con i nomi dei file contenuti in una cartella e con una determinata estensione grazie alla funzione System.IO.Directory.GetFiles

        For i = 0 To f.Length - 1 'Crea un ciclo che inizia con i=0 e viene ripetuto tante volte quanto è lunga la lista dei file(iniziando da 0 e non da 1 è necessario sottrarre 1 dalla lunghezza dell'array di files(Lenght indica la lunghezza di un array))

            f(i) = f(i).Substring(f(i).LastIndexOf("\") + 1)
            'f(i) indica il nome del file corrente nell'array; la funzione substring ne taglia la parte iniziale fino alla posizione specificata, che in questo caso si ottiene grazie alla funzione LastIndexOf, che trova la posizione dell'ultimo carattere del tipo specificato(in questo caso \); aggiungendo 1 si salta anche quest'ultimo \ e si ottiene il solo nome del file.



        Next 'Qui termina il ciclo, se i < file.lenght incrementa i di 1 altrimenti termina il ciclo


        
        For i = 0 To f.Length - 1 'Un ciclo come prima

            n = f(i).LastIndexOf(".")
            'come detto prima con la funzione LastIndexOf(".") si ottiene la posizione dell'ultimo carattere . che indica l'inizio dell'estensione del file

            'se minore di 0 vuol dire che c'è un file senza estensione
            'perchè lastindexof restituisce -1 se non è presente il
            'carattere cercato(.).
            If n > 0 Then 'Controlla se n sia maggiore di 0. se non lo è(n < 0) significa che LastIndexOf non ha trovato nessun punto(.) e quindi nessuna estensione.

                'elimina i caratteri a partire dall'ultimo punto
                f(i) = f(i).Remove(n)
            End If
        Next
        Return f 'La funzione restituisce l'array f(la lista dei file
    End Function
Ultima modifica effettuata da manvb.net 04/08/09 12:16
aaa
05/08/09 19:54
Master_VB
ho un libro di vb.net di cesare rota (se non sbaglio) ma tutti quei concatenamenti per me sono difficili comunque grazie di aver commentato il codice ci ho capito....però da solo da 0 un codice del genre non riuscirei a scriverlo
aaa
05/08/09 23:46
manvb.net
No, il codice non è affatto difficile(anzi si capisce abbastanza), il problema è che un libro non potra mai darti la capacità di leggere (e di conseguenza scrivere) scorrevolmente un sorgente, è un'abilità che si acquista col tempo, con l'esperienza.
Comunque se non conosci delle classi o funzioni leggi la spiegazione dell'intellisense.
aaa
06/08/09 9:00
Master_VB
lo so l'esperienza...
aaa