REPORT YUPLOAD LINE-SIZE 255 NO STANDARD PAGE HEADING.
DATA: BEGIN OF ITAB OCCURS 20,
LINE(1) TYPE X,
END OF ITAB.
DATA: BEGIN OF BTAB OCCURS 20,
LENGTH TYPE I,
LINE(100) TYPE X,
END OF BTAB.
DATA: BEGIN OF IREC OCCURS 10,
LINE(100) TYPE X,
END OF IREC.
DATA: LAST, DSPSTR(100), MODE, A TYPE I, POINTER TYPE I, SUM TYPE I.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
FILENAME = 'c:\sapgui\sapgui\rectrans'
FILETYPE = 'BIN'
TABLES
DATA_TAB = ITAB.
********************************************************
LAST = 'B'.POINTER = 0.
LOOP AT ITAB.
A = ITAB-LINE.
IF A >= 32 AND A <= 124.
IF LAST = 'B'.
BTAB-LENGTH = POINTER.
APPEND BTAB.CLEAR BTAB.
BTAB-LINE = ITAB-LINE.
LAST = 'A'.POINTER = 1.
ELSE.
BTAB-LINE+POINTER(1) = ITAB-LINE.
POINTER = POINTER + 1.
ENDIF.
ELSE.
IF LAST = 'B'.
BTAB-LINE+POINTER(1) = ITAB-LINE.POINTER = POINTER + 1.
ELSE.
BTAB-LENGTH = POINTER.
APPEND BTAB.CLEAR BTAB.
BTAB-LINE = ITAB-LINE.
LAST = 'B'.POINTER = 1.
ENDIF.
ENDIF.
ENDLOOP.
BTAB-LENGTH = POINTER.
APPEND BTAB.CLEAR BTAB.
LOOP AT BTAB.
POINTER = BTAB-LENGTH.
DSPSTR = BTAB+4(POINTER).
WRITE: / SY-TABIX, SUM, POINTER, DSPSTR.
SUM = SUM + POINTER.
ENDLOOP.
READ TABLE BTAB INDEX 30.
BTAB+4(12) = 'testuser '.
WRITE BTAB TO BTAB INDEX 30.
READ TABLE BTAB INDEX 34.
BTAB+4(8) = 'qwertyui'.
WRITE BTAB TO BTAB INDEX 34.
WRITE: / '***********************************************************'.
LOOP AT BTAB.
POINTER = BTAB-LENGTH.
DSPSTR = BTAB+4(POINTER).
WRITE: / SY-TABIX, SUM, POINTER, DSPSTR.
SUM = SUM + POINTER.
ENDLOOP.
********************************************************
MODE = ''.
LOOP AT BTAB.
CLEAR IREC. REFRESH IREC.
IREC = BTAB+4(100).
APPEND IREC.
POINTER = BTAB-LENGTH.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
BIN_FILESIZE = POINTER
FILENAME = 'c:\sapgui\sapgui\tttttttt'
FILETYPE = 'BIN'
MODE = MODE
TABLES
DATA_TAB = IREC.
MODE = 'A'.
ENDLOOP.