Split-Methode --- Doppeltes Anführungszeichen splitten

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Split-Methode --- Doppeltes Anführungszeichen splitten

    Hallo Leute,

    ich stehe vor einem kleinen Problem.
    Ich versuche gerade Daten aus einer csv-Datei auszulesen.
    Das klappt auch ganz gut, wenn ich diesen Code benutze...

    Quellcode

    1. Dim Datei As String() = File.ReadAllLines("test.csv")
    2. Dim dt As New DataTable("Name")
    3. Dim bFirstHeader As Boolean = False
    4. For Each sLine As String In Datei
    5. Dim dtRow As DataRow = dt.NewRow()
    6. Dim sColumn As String() = sLine.Split(";"c)
    7. For i As Integer = 0 To sColumn.Length - 1
    8. If bFirstHeader Then
    9. dtRow(i) = sColumn(i)
    10. Else
    11. dt.Columns.Add(sColumn(i))
    12. End If
    13. Next
    14. If bFirstHeader Then dt.Rows.Add(dtRow) Else bFirstHeader = True
    15. Next
    16. dgMonat.DataSource = dt


    Leider stehen die Werte in der csv-Datei in diesem Format drin...

    "wert1";"wert2";"wert3"

    ... und ich möchte natürlich diese doppelten Anführungszeichen auch nicht haben...
    Wie stelle ich das an...?

    Quellcode

    1. Dim sColumn As String() = sLine.Split("";""c)


    So funktioniert es leider nicht...

    Ciao
    trinity2253
    Wenn ALLE Werte in "" stehen reicht es, die per SubString rauszuschneiden. Wenn nicht alle, aber IMMER unerwünscht, dann per Replace rausschmeissen. Wenn nimcht immer und nur am Anfang und Ende unerwünscht dann halt prüfen ob und wenn dann eine der beiden vorgenannten Methoden.
    Hmmm,

    die SubString-Methode ist aber auch nicht gerade die Beste... Für diese muß man den Startwert und den Längenwert setzen...
    Fällt wohl eher flach, weil es zu aufwendig wird.

    Die Replace-Methode stößt wieder auf den Fall, den ich oben hätte auch einfach klären können.
    Hier das Problem, das ich das " nicht suchen und ersetzen kann...

    Quellcode

    1. Dim sZeichen as String
    2. sZeichen = """


    Ich kann kein doppeltes Anführungszeichen in doppelte Anführungszeichen setzen...
    Gleiche Problem, wie oben

    Quellcode

    1. Dim sColumn As String() = sLine.Split(";"c)


    Und nu?

    trinity2253