Textmodus angeben 

Um eine Datei im Textmodus zu bearbeiten, verwenden Sie den Zusatz IN TEXT MODE der Anweisung OPEN DATASET wie folgt:

Syntax

OPEN DATASET <dsn> FOR .... IN TEXT MODE.

Wenn Sie Daten aus einer Datei lesen oder Daten in eine Datei schreiben, die im Textmodus geöffnet ist, werden die Daten Zeile für Zeile übertragen. Das System nimmt an, daß die Datei eine Zeilenstruktur hat.

Sie sollten den Textmodus benutzen, wenn Sie Zeichenketten in Dateien schreiben wollen oder wenn Sie wissen, daß eine vorhandene Datei auf Zeilenbasis formatiert ist. Im Textmodus können Sie z.B. Dateien lesen, die mit einem beliebigen Editor auf Ihrem Anwendungsserver erstellt wurden.

Das folgende Beispielprogramm wurde für SAP-Systeme geschrieben, die unter UNIX-Systemen laufen, die eine ASCII-Darstellung benutzen:

DATA fname(60) TYPE c VALUE 'myfile'.

DATA: text(4) TYPE c,
      hex TYPE x.

OPEN DATASET fname FOR OUTPUT IN TEXT MODE.

TRANSFER '12        ' TO fname.
TRANSFER '123456  9 ' TO fname.
TRANSFER '1234      ' TO fname.

OPEN DATASET fname FOR INPUT IN TEXT MODE.

READ DATASET fname INTO text.
WRITE / text.
READ DATASET fname INTO text.
WRITE  text.
READ DATASET fname INTO text.
WRITE  text.

OPEN DATASET fname FOR INPUT IN BINARY MODE.

SKIP.
DO.
  READ DATASET fname INTO hex.
  IF sy-subrc <> 0.
    EXIT.
  ENDIF.
  WRITE hex.
ENDDO.

Ausgabe:

12 1234 1234

31 32 0A 31 32 33 34 35 36 20 20 39 0A 31 32 33 34 0A

In diesem Beispiel wird eine Datei "myfile" für das Schreiben im textmodus geöffnet. Drei Literale der Länge 10 werden in die Datei übertragen. Nach dem Öffnen der Datei für das Lesen im Textmodus werden die gespeicherten Zeilen in das Feld TEXT (Länge 4) eingelesen. Die erste Zeile wird von rechts mit zwei Leerzeichen aufgefüllt. Die letzten fünf Stellen der zweiten Zeile werden abgeschnitten. Das Öffnen der Datei im Binärmodus und das Einlesen in das Hexadezimalfeld HEX zeigt die Struktur der Datei: Die Zahlen zwischen 31 und 36 sind die ASCII-Darstellungen der numerischen Zeichen 1 bis 6, während 20 das Leerzeichen darstellt. Das Zeilenende wird jeweils durch 0A gekennzeichnet. Beachten Sie, daß Leerzeichen am Ende der Literale nicht in die Datei geschrieben werden.