Come leggere un file CSV in Visual Basic

June 12

Come leggere un file CSV in Visual Basic


formato Comma Separated Value (CSV) è un formato comune utilizzato per lo scambio di dati tra diversi programmi che potrebbero non supportare il formato nativo di ciascuno. Ad esempio, può essere utilizzato per lo scambio di dati di fogli di calcolo tra i dati del database di Excel e un altro foglio di calcolo, o tra Access e MySQL. Visual Basic non contiene una funzione automatica per il caricamento dei file CSV, ma una delle ragioni della sua ampio sostegno è la sua semplicità. Come suggerisce il nome, i file CSV sono altro che un elenco di valori, separati da una virgola o una nuova linea. E 'abbastanza semplice per creare un lettore CSV in Visual Basic.

istruzione

1 Creare un nuovo progetto facendo clic su "File" e "Nuovo progetto".

2 Trascinare un pulsante nel form dalla casella degli strumenti utilizzando il mouse.

3 Trova il controllo "OpenFileDialog" e aggiungerlo al form pure. Dal momento che questo controllo è inizialmente invisibile, non verrà visualizzato sul modulo, ma piuttosto sotto di esso.

4 Fare doppio clic sul pulsante per creare un evento che si verifica ogni volta che l'utente fa clic sul pulsante. Incollare il codice seguente che chiederà all'utente di un file CSV e caricare i propri dati in un array 2D:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

REM Get the file the user wants to load.
OpenFileDialog1.ShowDialog()
Dim filename As String = OpenFileDialog1.FileName
Dim fileStream As System.IO.StreamReader = New System.IO.StreamReader(filename)

REM leggere tutti i dati dal file in una singola stringa.

Dim contents As String = fileStream.ReadToEnd

REM dividere la stringa in suoi valori. Dopo questa operazione è terminata, ci sarà un array monodimensionale di valori, e la fine delle file sarà caratterizzata da stringhe vuote.

I valori Dim = contents.Split ()
Dim arr Come ArrayList = new ArrayList
filari fiochi come ArrayList = new ArrayList

REM spostare i dati in una matrice 2D.

For x As Integer = 0 To lines.Length - 1
If lines(x) IsNot String.Empty Then
arr.Add(lines(x))
End If
rows.Add(arr.Clone)
arr.Clear()
Next

dati Dim (rows.Count, righe (0) Count) As String

Per x As Integer = 0 Per rows.Count - 1
Per y As Integer = 0 alle righe (x) .count - 1
dati (x, y) = righe (x) (y)
Il prossimo
Il prossimo

End Sub