CSV Datei importieren und in Array splitten

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    CSV Datei importieren und in Array splitten

    Hallo,

    ich bin mir sicher, dass hier im Forum die Frage schon mal gestellt wurde. Jedoch bin ich nicht fündig geworden.

    Zu meinem Problem.

    Ich habe 2 Listen als Kommaseparierte Datei (";")
    In der einen Liste stehen die Artikelnamen und daneben der Einzelpreis
    Beispiel:
    Artikel;Einzelpreis
    Mini;10,00
    ARM;20,00
    Upgrade;5,00

    In der anderen Liste stehen Bestellungen:
    Beispiel:
    Name;MiniAnzahl;ARMAnzahl;UpgradeAnzahl
    Hugo;1;2;3
    Basti;5;4;3

    Die Listen selbst sind nicht fix. Können also mehrere Artikel unbestimmter Anzahl enthalten.

    Bisher habe ich die Listen per Streamreader Zeile für Zeile in ein List(Of String) eingelesen.

    Nun müsste ich mit .Split(";"c) das ganze in ein Array schieben. Nur weiß ich nicht wie.

    Hier noch mein Code für das einlesen.




    VB.NET-Quellcode

    1. Private Function ImportCSV() As List(Of String)
    2. Dim Datei As New Fileprocessing
    3. Dim Items As New List(Of String)
    4. Try
    5. For Each Item As String In Datei.Lesen(Datei.FileOpen())
    6. Items.Add(Item)
    7. Next
    8. Catch ex As Exception
    9. End Try
    10. Return Items
    11. End Function
    12. Function ImportNachArt(ByVal ImportArt As String) As Boolean
    13. If ImportArt = "Preisliste" Then
    14. For Each Item As String In ImportCSV()
    15. Preisliste.Add(Item)
    16. Next
    17. If Preisliste.Count > 0 Then Return True
    18. ElseIf ImportArt = "Bestellliste" Then
    19. For Each Item As String In ImportCSV()
    20. Bestellliste.Add(Item)
    21. Next
    22. If Bestellliste.Count > 0 Then Return True
    23. Else
    24. End If
    25. Return False
    26. End Function


    Kann mir jemand bitte einen Tipp geben?

    Vielen Dank schon mal

    Grüße
    Sebastian
    Willkommen im Forum. :thumbup:
    1. eine Datei zeilenweise einlesen:

    VB.NET-Quellcode

    1. Dim lines() As String = System.IO.File.ReadAllLines(DEIN_PFAD)
    2. eine dieser Zeilen "zerlegen":

    VB.NET-Quellcode

    1. Dim parts() As Sring = line.Split(";"c)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Willkommen im Forum. :thumbup:
    1. eine Datei zeilenweise einlesen:

    VB.NET-Quellcode

    1. Dim lines() As String = System.IO.File.ReadAllLines(DEIN_PFAD)
    2. eine dieser Zeilen "zerlegen":

    VB.NET-Quellcode

    1. Dim parts() As Sring = line.Split(";"c)
    Hallo und vielen Dank :)

    Das einlesen ist kein Problem. ich möchte eben aber alle Zeilen und Spalten in ein Array einlesen. Jedoch ist ReDim Preserve um das Array dynamisch zu erweitern nicht das Mittel erster Wahl.
    Was geht denn noch?
    Im Endeffekt soll das Array soviel Zeilen und Spalten haben wie die CSV Datei.
    Wenn Du dynamisch Zeilen und Spalten verwalten willst, nimm eine DataTable. Bist Du dafür bereit?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Pacemaker schrieb:

    Klingt so als gäbe es Fallstricke...
    Eigentlich nicht.
    Du hast hier bis jetzt 3 Posts veröffentlicht, ich habe keine Ahnung, was Du für Kenntnisse mitbringst. Wenn Du es drauf hast, spielst Du ein paar (3 - 5) Beispiele durch und hast Dein Problem gelöst.
    Stelle konkrete Fragen und Dir wird auch weiterhin konkret geholfen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!