csv-zeilenumbrüche

zuxerom

Mitglied
hi zusammen,

ich will meine csv-datei richtig auslesen lassen, hab aber das problem, dass in manchen zeilen umbrüche mit drin sind obwohl zu der zeile darüber hinten dran gehören. cr lf. kann ich das irgenwie mit hilfe eines befehls fixen?

danke im voraus
 

XHelp

Top Contributor
Hm? Sind da jetzt plötzlich zusätzliche Zeilenumbrüche oder werden die existierenden Zeilenumbrüchen scheinbar falsch interpretiert?
Zeit am besten einen (Minimal-) Beispiel von der Datei und dem Code.
 

FArt

Top Contributor
hi zusammen,

ich will meine csv-datei richtig auslesen lassen, hab aber das problem, dass in manchen zeilen umbrüche mit drin sind obwohl zu der zeile darüber hinten dran gehören. cr lf. kann ich das irgenwie mit hilfe eines befehls fixen?

danke im voraus

Wenn die Zeilenümbrüche als Trennzeichen für die Zeilen gelten und aber auch sonst mittendrin und wahllos noch vorkommen, ist die Datei korrupt.
 

zuxerom

Mitglied
@ XHelp: die zeilenumbrüche sind von anfang an in der datei. beispiel ist die ersten 4 spalten sind einzeilig und in der fünften zeile ist ein text mit zeilenumbrüchen drin und die spalten am schluss sind wieder einzeilig. und diese umbrüche werden auch so ausgelesen.

@FArt: was meinst du mit korrupt. das die datei fehlerhaft ist?
 

FArt

Top Contributor
Nein Zeilenumbrüche dürfen laut Spec vorkommen, müssen dann aber innerhalb einer Textdefinition liegen (also z.B. zwischen Quotes).

Ja, wenn sie explizit vorgesehen waren udn somit entsprchend abgelegt sind. Das hörte sich oben aber nicht so an, sonst wäre das Problem wohl kein Problem. Wenn man dann keine Regel(n) ableiten kann (Spalte drei hat immer drei CRLF oder Spalte zwei ist ein Datum, Spalte vier auch und alles dazwischen ist Spalte drei oder so) dann ist die Datei korrupt und kann nicht mehr automatisch interpretiert werden.
 

FArt

Top Contributor
es geht um eine bestehende datei.

Wenn Zeilenumbrüche vorkommen, die nicht vorgesehen waren und die CSV Datei nicht ensprechend aufgebaut ist, dass sie damit umgehen kann, ist die Datei korrupt, d.h. sie kann nicht automatisch als CSV interpretiert werden.

Wenn du ein Muster oder Regeln finden kannst, wie die zusätzlichen CRLF verteilt sind, dann kannst du mit einem Skript die Datei reparieren und so die einträge wieder zu Spalten zusammenfassen. Sonst hilft nur Handarbeit.
 

zuxerom

Mitglied
dieses sogenannte muster oder regel wollte ich hier ja in erfahrung bringen ^^ weil habe bisher im internet noch nix gefunden was sich auf mein problem bezieht.
 

FArt

Top Contributor
dieses sogenannte muster oder regel wollte ich hier ja in erfahrung bringen ^^ weil habe bisher im internet noch nix gefunden was sich auf mein problem bezieht.

Sollte es so ein Muster oder eine Regel geben, dann musst du die für deine konkrete Datei selber herausfinden, z.B. wenn es in Spalte zwei immer genau 2 CRLF gibt, kann man diese automatisiert eliminieren oder wrappen (mit einem Skript). Danach ist die Datei wieder valide und kann als CSV verarbeitet werden.
Wenn das nicht geht, dann ist die Datei korrupt, kaputt, hinüber, inkonsistent und kann automatisiert nicht sinnvoll verarbeitet werden.
 

zuxerom

Mitglied
wo die umbrüche sind weiß ich ^^ oder war das nicht gemeint mit deinem spalten-beispiel? kann ich nicht eine while schleife bauen die abfragt wenn die zeile unter einem bestimmten namen nicht anfängt geh in die nächste zeile und füge die in der oberen hinten an mit der .append?
 

FArt

Top Contributor
wo die umbrüche sind weiß ich ^^ oder war das nicht gemeint mit deinem spalten-beispiel? kann ich nicht eine while schleife bauen die abfragt wenn die zeile unter einem bestimmten namen nicht anfängt geh in die nächste zeile und füge die in der oberen hinten an mit der .append?

CSV fordert nicht, dass alle Spalten gefüllt sein müssen, was dir u.U. das Genick brechen könnte.

Ein letztes mal: wenn du die "falschen" CRLF (die überflüssigen) von den "richtigen" (Trennern) unterscheiden kannst, dann hast du kein Problem und der ganze Thread war sinnlos. Wie die Unterscheidung vorzunehmen ist, kannst nur du sagen, da nur du diese Datei kennst und sagen kannst, ob es irgend eine Art von Systematik in den "falschen" CRLFs gibt.
 

Ähnliche Java Themen

Neue Themen


Oben