Slik leser du en CSV-fil i Visual Basic

Slik leser du en CSV-fil i Visual Basic


Kommadelte Value (CSV) -format er et vanlig format som brukes til å utveksle data mellom ulike programmer som kanskje ikke støtter hverandres opprinnelig format. For eksempel kan den brukes til å utveksle regneark data mellom Excel og annet regneark eller database data mellom Access og MySQL. Visual Basic inneholder ikke en automatisk funksjon for lasting CSV-filer, men en av grunnene for sin omfattende støtte er dens enkelhet. Som navnet tilsier, CSV-filer er ikke noe annet enn en liste med verdier, hver atskilt med komma eller en ny linje. Det er ganske enkelt å lage en CSV-leser i Visual Basic.

Bruksanvisning

1 Opprett et nytt prosjekt ved å klikke på "File" og "New Project".

2 Dra en knapp på skjemaet fra verktøykassen med musen.

3 Finn "OpenFileDialog" kontroll og legge den til din form også. Siden denne kontrollen er i utgangspunktet usynlig, vil det ikke vises på skjemaet, men heller under den.

4 Dobbeltklikk på knappen for å opprette en hendelse som vil skje når brukeren klikker på knappen. Lim inn følgende kode som vil spørre brukeren om en CSV-fil og laste inn data i en 2D matrise:

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 Les alle dataene fra filen til en enkelt streng.

Dim contents As String = fileStream.ReadToEnd

REM Split strengen inn i dens verdier. Etter denne operasjonen er ferdig, vil det være en endimensjonal matrise med verdier, og enden av radene vil bli preget av tomme strenger.

Dim verdier = contents.Split ()
Dim arr som Arraylist = Ny Arraylist
Dim rader Som Arraylist = Ny Arraylist

REM Flytt dataene inn i en 2D array.

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

Dim data (rows.Count, rader (0) .count) Som String

For x As Integer = 0 For å rows.Count - 1
For y As Integer = 0 For å rader (x) .count - 1
data (x, y) = p (x) (y)
neste
neste

End Sub