Code: Alles auswählen.
SPLIT AT crlf INTO TABLE itab.
Loop At itab.
write...
Endloop.
Code: Alles auswählen.
CONSTANTS:
c_crlf(2) TYPE x VALUE '0D0A'.
DATA:
lt_text TYPE TABLE OF char255
WITH HEADER LINE,
lt_string TYPE TABLE OF string
WITH HEADER LINE,
ls_string TYPE string.
* alle Zeilen in eine langen String zusammenfügen
LOOP AT lt_text.
CONCATENATE
ls_string
lt_text
INTO ls_string.
ENDLOOP.
IF sy-subrc EQ 0.
* String an den CRLF's auftrennen
SPLIT ls_string
AT c_crlf
INTO TABLE lt_string.
* und jetzt kann man die Ausgabe zeilenweise vornehmen
LOOP AT lt_string.
WRITE:
/ lt_string.
ENDLOOP.
ENDIF.
Sowas hab ich auch mal probiert und später wieder wg. folgendem Problem fallen gelassen:ereglam hat geschrieben:* alle Zeilen in eine langen String zusammenfügen
LOOP AT lt_text.
CONCATENATE
ls_string
lt_text
INTO ls_string.
ENDLOOP.
deshalb wäre ein Import der Datei als einzelner String die beste Lösung, da in diesem Fall solche CONCAT-Probleme nicht auftreten.black_adept hat geschrieben:Sowas hab ich auch mal probiert und später wieder wg. folgendem Problem fallen gelassen:ereglam hat geschrieben:* alle Zeilen in eine langen String zusammenfügen
LOOP AT lt_text.
CONCATENATE
ls_string
lt_text
INTO ls_string.
ENDLOOP.
Wenn der Fließtext zufällig so aufgebaut ist, dass aufeinanderfolgende Leerzeichen über die (Tabellen)Zeilengrenze hinaus laufen, ( z.B. ein Leerzeichen auf Position 255 von Zeile x, ein Leerzeichen auf Position 0 von Zeile x+1 ) schrumpft der CONCATENATE diese auf ein Leerzeichen zusammen.
Solange dieser Effekt egal ist, ist deine Methode sehr elegant - wenn nicht kommts zu Verschiebungen im Text.
warum machen wir es eigentlich immer so kompliziert...steffi_ma hat geschrieben:Hallo,
ich lasse mir über einen Funktionsbaustein den Inhalt einer Datei über TABLES zurückliefern mit je max 255 Zeichen.
Die Ausgabe habe ich bisher über:
LOOP AT text.
WRITE: / text-line.
ENDLOOP.
Es werden auch alle Zeichen dargestellt.
Jetzt möchte ich aber an den Zeilenumbrüchen der Datei auch im angezeigten Text Zeilenumbrüche haben. Als Text steht dann immer ein ##. Wie ist denn der Code für einen Zeilenumbruch???