OPEN DATASET: Leerzeile einfügen in CSV-Datei

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

OPEN DATASET: Leerzeile einfügen in CSV-Datei

Beitrag von sapdepp (Specialist / 218 / 37 / 2 ) »
Guten Tag,

ich möchte gern per OPEN DATASET eine Leerzeile zwischen der 2. und 3. Zeile in eine CSV-Datei einfügen. Das klappt aber nicht. Folgendes habe ich probiert:

1. Möglichkeit (vereinfacht):

Code: Alles auswählen.

OPEN DATASET g_adatei FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
DATA newline TYPE abap_char1 VALUE cl_abap_char_utilities=>newline.

c_zeile = |[Header]{ newline }Source=OP{ newline }{ newline }[Data]|.

TRANSFER c_zeile TO g_adatei.
CLOSE DATASET g_adatei.
2. Möglichkeit (vereinfacht):

Code: Alles auswählen.

OPEN DATASET g_adatei FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
c_zeile = |[Header]|.
TRANSFER c_zeile TO g_adatei.
c_zeile = |Source=OP|.
TRANSFER c_zeile TO g_adatei.
c_zeile = ' '.
TRANSFER c_zeile TO g_adatei.
c_zeile = |[Data]|.
TRANSFER c_zeile TO g_adatei.
CLOSE DATASET g_adatei.
Mit cr_lf anstatt newline klappt es übrigens auch nicht.

Aussehen soll es so:
[Header]
Source=OP

[Data]

Aussehen tut es so momentan:
[Header]
Source=OP
[Data]

Bin dankbar für Denkanstoß.

Vielen Dank und viele Grüße

sapdepp

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: OPEN DATASET: Leerzeile einfügen in CSV-Datei

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Da du im TEXT MODE unterwegs bist übernimmt das TRANSFER die "Zeilenschaltung".
Du könntest also entweder einen kompletten String inkl. CR und/oder LF erstellen. Diesen dann in einen XSTRING umwandlen (Codepage!) und im BINARY MODE schreiben.
ODER
Du machst einfach für jede Leerzeile ein TRANSFER mit einem leeren String.

Mir persönlich ist die Variante mit BINARY MODE lieber (sowohl für Lesen als auch schreiben) weil man da viel genauer mit der Codepage arbeiten kann und dadurch auch flexibler ist.

EDIT:
Ich hab gerade gesehen du versuchst es ja bereits mit einem Leerzeichen.
Wie ist C_ZEILE definiert? Wenn es ein CHAR-Feld ist wird das nicht funktionieren. Wenn es ein STRING ist musst du ` ` anstatt ' ' verwenden um ein Leerzeichen im String zu haben und damit eine NICHT INITIALE Zeile zu bekommen.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
sapdepp

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: OPEN DATASET: Leerzeile einfügen in CSV-Datei

Beitrag von sapdepp (Specialist / 218 / 37 / 2 ) »
Hi ADT,

das mit dem leeren String und TRANSFER hatte ich im 2. Beispiel schon vergeblich versucht. Aber du hast es ja schon gelesen jetzt. C_STRING hatte ich als String definiert, die `` funktionieren nun wie erhofft. :)

Im BINARY MODE kommt leider nur Kauderwelsch heraus.

Im BINARY MODE habe ich das eingegeben. Bei Ausgabe im BINARY MODE fehlen nun allerdings die Einträge in der CSV, sie ist leer. Nutze ich die System-Codepage 4103, dumpt es.

Code: Alles auswählen.

OPEN DATASET g_adatei FOR OUTPUT IN LEGACY BINARY MODE CODE PAGE '1100'.
c_zeile = |[Header]{ cr_lf }Source=OP{ cr_lf }{ cr_lf }[Data]|.
data(x_zeile) = CONV xstring( c_zeile ).
TRANSFER x_zeile TO g_datei.
CLOSE DATASET g_adatei.
Vielen Dank. Das mit dem TEXT MODE hat ja geklappt, wie gesagt.

sapdepp

Seite 1 von 1

Vergleichbare Themen

15
Antw.
2050
Views
CSV Datei mit open dataset
von lisa » 18.05.2021 10:19 • Verfasst in ABAP® für Anfänger
2
Antw.
3867
Views
Datei anlegen mit Open Dataset
von ostpower » 22.10.2012 16:12 • Verfasst in Human Resources
3
Antw.
1763
Views
Mit Open Dataset eine CSV-Datei erstellen
von L0w-RiDer » 01.11.2019 09:38 • Verfasst in ABAP® für Anfänger
7
Antw.
6433
Views
OPEN DATASET öffnet die Datei nicht
von Marwin » 20.04.2005 11:17 • Verfasst in ABAP® Core
1
Antw.
4054
Views
OPEN DATASET for Input einer CSV-Datei
von Tina » 20.06.2006 15:08 • Verfasst in Basis

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
Gestern von Bright4.5 1 / 515
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2149
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8744