Hallo Stefan,black_adept hat geschrieben: ↑04.10.2024 09:38Bitte poste mal den Teil des Codings mit den folgenden Schlüsselworten: OPEN DATASET und TRANSFER
v_zaehler2 = 0.black_adept hat geschrieben: ↑04.10.2024 10:09Exakt 1 TRANSFER oder mehrere TRANSFER innerhalb eines LOOPs?
Und ich würde gerne noch mal den Teil des Codings mit dem CONCATENATE sehen wollen.
Die unerwünschten Umbrüche entstehen scheinbar beim CONCATENATE da wir zwischen 2 Zeichen scheinbar willkürlich ein Umbruch eingefügt.a-dead-trousers hat geschrieben: ↑04.10.2024 10:59Blöde Fragen:
Wo befinden sich diese "ungewünschten" Zeilenumbrüche in deiner Datei? Zwischen den einzelnen Datensätzen oder (auch) innerhalb der Datensätze? Wie "überprüfst" du deine Datei? Mit welchem (Text-)Editor?
Das glaube ich nicht. Eher wird in irgendwelchen der zusammengefügten Felder am Ende schon ein Zeilenumbruch ( nicht unbedingt CRLF sondern evtl. nur CR oder nur LF ) vorhanden sein. Schau dir mal im Debugger die jeweiligen Felder als HEX an und schau, ob diese mit "0A" oder "0D" enden. Passiert manchmal, wenn User Daten aus dem Internet mittels Copy&Paste in SAP-Felder einfügen oder wenn man Dateien mal von Unix und mal von Windows lädt. Das ist nie schön, aber auch nicht völlig unerwartet. Du solltest vorab alle Felder 1x bereinigen - und eben nicht nur nach CRLF sondern einzeln nach CR und LF.
Code: Alles auswählen.
Replace all occurrences of regex |[{ CL_ABAP_CHAR_UTILITIES=>CR_LF }]| in l_var_zeile1 with space.
Nimm statt "WITH SPACE" lieber "WITH ``", sonst erzeugst du "trailing blanks" - und die will man eigentlich auch nicht haben.a-dead-trousers hat geschrieben: ↑04.10.2024 12:52Vielleicht probierst du es mal damit bevor du den TRANSFER machst:Das sollte alle möglichen Zeilenumbruchzeichen (Mac, Win, Unix/Linux, ...) von deinem Text vor der Dateiausgabe enfernen.Code: Alles auswählen.
Replace all occurrences of regex |[{ CL_ABAP_CHAR_UTILITIES=>CR_LF }]| in l_var_zeile1 with space.
Nimm statt "WITH SPACE" lieber "WITH ``", sonst erzeugst du "trailing blanks" - und die will man eigentlich auch nicht haben.a-dead-trousers hat geschrieben: ↑04.10.2024 12:52Vielleicht probierst du es mal damit bevor du den TRANSFER machst:Das sollte alle möglichen Zeilenumbruchzeichen (Mac, Win, Unix/Linux, ...) von deinem Text vor der Dateiausgabe enfernen.Code: Alles auswählen.
Replace all occurrences of regex |[{ CL_ABAP_CHAR_UTILITIES=>CR_LF }]| in l_var_zeile1 with space.
Damit ich die Regex [<CR><LF>] habe, also die beiden Zeichen in beliebiger Kombination.black_adept hat geschrieben: ↑04.10.2024 13:17@a-d-t: Warum das "CL_..=>CR_LF" als String expression. Das kann man auch direkt verwenden und wenn man schon so vorgeht: Es gibt einen Replaceoperator, der alle nicht druckbaren Zeichen entsorgt, den ich aber nicht auswendig weiß. Der entsorgt CR_LF, CR, LF, TAB und was sonst noch an Anfug in solchen Feldern stehen kann.
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag (Insgesamt 2):
black_adept • rob_abc
Cooooool - das geht in mein Repertoire.....a-dead-trousers hat geschrieben: ↑04.10.2024 13:39Damit ich die Regex [<CR><LF>] habe, also die beiden Zeichen in beliebiger Kombination.