CSV mit FileReadLine() - Alternative wenn Umbruch innerhalb Quotes

  • Hallo,

    ich verarbeite derzeit CSV Dateien mit AutoIt. Nun habe ich vermehrt den Fall, das in einem Feld mit " " gekapselte Werte kommen die Zeilenumbruche enthalten. Leider lese ich es derzeit immer mit FileReadLine() ein, was natürlich zu Problemen führt.

    Beispiel:

    Code
    eins;zwei;drei;vier
    eins;zwei;"drei 
    und
    vier";fünf
    eins;zwei;drei;vier


    Wie kann ich da am besten vorgehen? Prüfen wie viele " in der Datei sind und wenn es ungerade sind die nächste Zeile von FileReadLine() einfach vor meiner Verarbeitung dranhängen? Scheint mir auch etwas nach Workaround.. Was anderes fällt mir gerade nicht ein.

    Gibt es hier ev. gute CSV-Parser die das können? (Semikolons innerhalb " " kann ich schon handeln, aber das passiert ja eh erst danach).

    Danke!

  • Mit regulär expressions am ende der Zeile nachsehen ob ein CR oder crl steht. und dann eben die nächste Zeile "dranhängen" solange das der Fall ist.
    Schau Dir das an, sollte eigentlich zuverlässig funktionieren.

    Gruß

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Hallo,

    danke, aber an jedem Zeilenende hängt ein CR|LF|CRLF. Da definiiert ja ein Zeilenende. Ich habe jetzt aber zwei Thread gefunden mit CSV Parsern die scheinbar damit umgehen können. Das schau ich mir an.

    https://www.autoitscript.com/forum/topic/38397-csv-udf/

    https://www.autoitscript.com/forum/topic/50…ick-csv-parser/


    Weiters nutze ich bisher diese Funktion für die Feldtrennung, die geschütze Semikolons innerhalb " " ignoriert .DIe habe ich nun auch aufgebohrt, scheint für Zeilenumbrüche soweit auch gut zu funktionieren. Auf den ersten Blick.

  • Ich verwende immer den CSV parser von ProgAndy (z.B. in meiner OutlookEX UDF): http://www.autoitscript.com/forum/topic/11…mensional-array