Announcement

Collapse
No announcement yet.

Eintäge in CSV Datei mit Split Methode trennen Problem

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Eintäge in CSV Datei mit Split Methode trennen Problem

    Hey Guys,

    habe da wahrscheinlich eine blöde Frage aber, ich habe nichts gefunden dazu. Ich lese in VB.net CSV Dateien aus. Als Methode zum trennen verwend ich Split und packe dann das ganze in ein array.


    Code:
    Dim aryTextFile() As String
    Dim LineOfText As String
    LineOfText = SR1.ReadLine()
    aryTextFile = LineOfText.Split(",")
    So und nun zu meinem Problem, die CSV hat als Ersten Eintrag zum Beispiel mehrere Wörter oder manchmal auch nur ein Wort in Anführungszeichen "Wert" stehen, die Anführungszeichen hat mir der Streamreader immer mit in den String geladen und habe sie deswegen mit

    Code:
    aryTextFile(1) = aryTextFile(1).Remove(0, 1) : lange = aryTextFile(1).Length : lange = lange - 1 : aryTextFile(1) = aryTextFile(1).Remove(lange)
    entfernt. Jetzt habe ich aber das Problem das es in einigen Einträgen "Wert" ein Komma gibt, z.B.: "Wert1,2" welches die Split Funktion als Trennzeichen erkannt. Wie kann ich ihm das Einprügeln das er den Eintrag zwischen "" als kompletten Wert betrachtet ?

    Dank euch wie immer für eure Hilfe !

    Greetz CR

  • #2
    Die " erst in dem erzeugten Array entfernen
    Christian

    Comment


    • #3
      Ich habe auch mal versucht, ein CSV mit meinem eigenem Code zu lesen.
      Obwohl es auf den ersten Blick einfach aussieht gab es diverse Probleme. Am Ende hatte ich keine Lust mehr darauf und habe etwas genommen, was andere bereits geschrieben haben.

      Ein einfaches Modul gibt es z. B. hier:
      http://www.codeproject.com/Articles/...ast-CSV-Reader

      Sehr viel umfangreicher ist z. B. dieses hier:
      http://kbcsv.codeplex.com/

      Gruss

      Comment


      • #4
        ein trim wäre übrigens einfacher als dein Remove

        Comment


        • #5
          Ein trim entfernt Leerzeichen, keine "

          Einfacher wäre ein replace

          Und einfacher wäre es wohl nicht vorher in der CSV-Datei rum zu spielen. Genau wegen dieser Probleme nimmt man als Delimiter kein Komma, sondern eher ein zeichen wie #

          Ansonsten wäre dann als Delimiter "\".\"" zu wählen. Aber er sagte ja, dass die Probleme mit dem entfernen der " zu tun hat.

          Sinnvoll wäre es gewesen, hier mal die CSV Datei zu beschreiben und ein Datensatz zu zeigen
          Christian

          Comment


          • #6
            Ein trim entfernt Leerzeichen, keine "
            Trim kann man ein Array von Chars mitgeben mit Zeichen die weggetrimmt werden sollen.

            Wie kann ich ihm das Einprügeln das er den Eintrag zwischen "" als kompletten Wert betrachtet ?
            Gar nicht. Split macht genau das was der Name besagt. Es splittet an dem übergebenen Separator. Punkt. Es weiß nichts von Delimitern von Werten die man ignorieren muß etc. Im VisualBasic.FileIO Namespace solltest du denn TextFieldParser finden der das besser hinbekommen sollte. Ansonsten ergoogle dir einen der fertigen CSV Parser.

            Comment

            Working...
            X