Ciao, ho un piccolo problema con il controllo "DataGridView" che nel mio codice chiamo "Catalogo".
In questo stralcio di codice ho il problema che a seguito del lancio della routine e della lettura del file CSV popola i campi della griglia saltando alcuni valori che in debug vengono letti.

codice:
Private Sub RiconoscimentoCampi()
        Dim Leggi As Microsoft.VisualBasic.FileIO.TextFieldParser
        Dim Percorso As String
        Dim BufferRiga As String()
        Dim icl, irg, i As Integer
        irg = 0
        Catalogo.Rows.Clear()                                                       'azzero il catalogo
        Percorso = PercorsoDisco.Item(Indice)                                       'recupero dall'array il percorso completo del file selezionato all'interno di listview (listadischi)
        Leggi = My.Computer.FileSystem.OpenTextFieldParser(Percorso)                'apro il file in modo da riconoscere i campi
        Leggi.TextFieldType = FileIO.FieldType.Delimited                            'dico che il file č delimitato (e non a larghezza fissa)
        Leggi.SetDelimiters(";")                                                    'setto il delimitatore
        While Not Leggi.EndOfData
            Try
                Catalogo.Rows.Add()
SaltaRiga:
                icl = 0                                                             'per ogni riga letta azzero il numero di colonna del database e l'indice
                i = 0                                                               '...del campo della riga letta (non la riga del database)
                BufferRiga = Leggi.ReadFields()                                     'copio l'intera riga delimitata in un array
                If BufferRiga(0) = String.Empty Then
                    GoTo SaltaRiga
                End If
                For i = 0 To BufferRiga.Count - 1
Ricicla:
                    If BufferRiga(i) = String.Empty Then                            'Verifico ed elimino i campi vuoti generati dal doppio ; nel file csv
                        i = i + 1                                                   'incremento l'indice del campo (riguardante la riga letta)
                        GoTo Ricicla
                    End If
                    Catalogo.Rows(irg).Cells(icl).Value = BufferRiga(i)
                    i = i + 1                                                       'incremento l'indice del campo (riguardante la riga letta)
                    icl = icl + 1                                                   'incremento l'indice della colonna (passo alla cella successiva)
                Next
            Catch ex As Exception
                MsgBox("La riga " & ex.Message & " non č valida e verrā saltata.")
            End Try
            irg = irg + 1                                                           'incremento l'indice del numero di riga
        End While
        Leggi.Close()
    End Sub
Notate qualcosa che non vā?

Ecco il file CSV di prova
codice:
NUMBER;NAME;COUNT;EXT;SIZE;DATE;TIME
;Questa riga non deve essere letta perchč c'č il delimitatore ; davanti
;c:\Cartella\;1;;10.770,44 MB;2009-10-23;23:32
1. ;foto1;;jpg;0,51 MB;2009-08-17;14:08
2. ;foto2;;jpg;0,23 MB;2009-08-17;14:09
3. ;foto3;;jpg;0,35 MB;2009-08-17;14:02
4. ;foto4;;jpg;1,15 MB;2009-08-17;13:51
5. ;foto5;;jpg;0,43 MB;2009-08-17;14:02
6. ;foto6;;jpg;0,53 MB;2009-08-17;14:11
7. ;file_audio1;;mp3;10,44 MB;2009-08-17;14:14
8. ;file_audio2;;mp3;8,95 MB;2009-08-17;14:14
9. ;file_audio3;;mp3;5,51 MB;2009-08-17;14:07
10. ;film1;;avi;711,36 MB;2009-08-17;14:12
Ecco uno screen del risultato


Spero in vostri consigli

P.S. Se avete bisogno vi passo il progetto in pvt, Grazie!