Gewusst wie: Lesen Sie eine Csv-Datei in Visual Basic

February 16

Gewusst wie: Lesen Sie eine Csv-Datei in Visual Basic

Durch Kommas getrennten Wert (CSV) Format ist ein gängiges Format zum Austausch von Daten zwischen verschiedenen Programmen, die nicht jeder des anderen nativen Format unterstützen kann. Es kann z. B. Tabellenkalkulation Datenaustausch zwischen Excel und einer anderen Kalkulationstabelle oder Datenbankdaten zwischen Access und MySQL verwendet werden. Visual Basic enthält keine automatische Funktion zum Laden von CSV-Dateien, aber einer der Gründe für seine breite Unterstützung seine Einfachheit ist. Wie der Name schon sagt, CSV-Dateien sind nichts anderes als eine Liste von Werten, die durch ein Komma oder eine neue Zeile getrennt. Es ist recht einfach zu einen CSV-Reader in Visual Basic zu erstellen.

Anweisungen

1 Erstellen Sie ein neues Projekt, indem Sie auf "Datei" und "Neues Projekt".

2 Ziehen Sie eine Schaltfläche von der Toolbox mit der Maus auf das Formular.

3 Das Steuerelement "OpenFileDialog" zu finden und das Formular auch hinzugefügt. Da diese Steuerung anfangs nicht sichtbar ist, erscheint es nicht auf dem Formular, sondern eher unter ihm.

4 Doppelklicken Sie auf die Schaltfläche zum Erstellen eines Ereignisses, das auftreten werden, wenn der Benutzer auf die Schaltfläche klickt. Fügen Sie den folgenden Code, der den Benutzer Fragen, für eine CSV-Datei und laden Sie ihre Daten in einem 2D-Array:

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 alle Daten zu einer einzigen Zeichenfolge aus der Datei gelesen.

Dim contents As String = fileStream.ReadToEnd

REM Split the string into its values. After this operation is finished, there will be a one dimensional array of values, and the end of the rows will be marked by empty strings.

Dim values = contents.Split() Dim arr As ArrayList = New ArrayList Dim rows As ArrayList = New ArrayList

REM die Daten in einem 2D-Array verschoben.

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, rows(0).count) As String

For x As Integer = 0 To rows.Count - 1 For y As Integer = 0 To rows(x).count - 1 data(x, y) = rows(x)(y) Next Next

End Sub