DATA: MESS(60),
FNAME(10) VALUE '/tmp'.
OPEN DATASET FNAME FOR OUTPUT MESSAGE MESS.
IF SY-SUBRC <> 0.
WRITE: 'SY-SUBRC:', SY-SUBRC,
/ 'System Message:', MESS.
ENDIF.
If the R/3 System is ruining under UNIX, the output looks like this:
The system cannot open the file, since the name you specified is that of a directory.
The following program shows how the system sets the position when you open a file for writing. However, it is better programming style to close files that are already open before you reopen them for a different operation (for further information about closing files, refer to Closing a File ).
DATA FNAME(60) VALUE 'myfile'.
DATA NUM TYPE I.
OPEN DATASET FNAME FOR OUTPUT.
DO 10 TIMES.
NUM = NUM + 1.
TRANSFER NUM TO FNAME.
ENDDO.
PERFORM INPUT.
OPEN DATASET FNAME FOR OUTPUT.
NUM = 0.
DO 5 TIMES.
NUM = NUM + 10.
TRANSFER NUM TO FNAME.
ENDDO.
PERFORM INPUT.
CLOSE DATASET FNAME.
OPEN DATASET FNAME FOR OUTPUT.
NUM = 0.
DO 5 TIMES.
NUM = NUM + 20.
TRANSFER NUM TO FNAME.
ENDDO.
PERFORM INPUT.
FORM INPUT.
SKIP.
OPEN DATASET FNAME FOR INPUT.
DO.
READ DATASET FNAME INTO NUM.
IF SY-SUBRC <> 0.
EXIT.
ENDIF.
WRITE / NUM.
ENDDO.
ENDFORM.
The output appears as follows:
1
2
3
4
5
6
7
8
9
10
10
20
30
40
50
6
7
8
9
10
20
40
60
80
100
This example performs the following steps using the file "myfile":
-
- It is opened for writing
- It is filled with 10 integers (for information about the TRANSFER statement, refer to
- It is then opened for reading. The position is reset accordingly to the beginning of the file.
- It is read into the field NUM. For information about the READ DATASET statement, refer to
- It is reopened for writing The position is reset to the beginning of the file.
- It is filled with five integers, which overwrite the previous contents of the file.
- It is then reopened for reading. The position is reset to the beginning of the file.
- The file is read into the field NUM. The values of NUM are displayed on the screen.
- It is closed (for information about the CLOSE DATASET statement, refer to
- It is then reopened for writing. The system deletes the existing contents of the file.
- It is filled with 5 integers.
- It is then opened for reading. The position is reset to the beginning of the file.
- The file is read into the field NUM. The values of NUM are displayed on the screen