‎2009 Aug 25 9:02 AM
Dear all,
I have created a program to which read data from application server, which is seprated by tab. But anable to append the data into internal table itab and write it.
I have include to code for your reference.
With Regards,
Baskaran
DATA: X_INPUT_REC,
REC_TYPE(4) TYPE C.
DATA: BEGIN OF ITAB OCCURS 0,
LEN(2),
WED(2),
hei(2),
END OF ITAB.
DATA: BEGIN OF ITAB1 OCCURS 0,
STR(200),
END OF ITAB1.
DATA: G_INREC(80) .
data str(255).
*data: FILEN TYPE i default ' '.
DATA: L_EOF(50) VALUE 'C_FALSE'.
*DATA: L_EOF1(50) VALUE 'C_TRUE'.
PARAMETERS: FILENAME(80) DEFAUlt '
192.168.100.33\sapmnt\ids\sys\global\sample.txt' .
*CONCATENATE FILEN INTO FILENAME NO-GAP.
OPEN DATASET FILENAME FOR INPUT IN TEXT MODE ENCODING DEFAULT." MESSAGE L_MSG.
WHILE L_EOF NE 'C_TRUE'.
READ DATASET FILENAME INTO G_INREC.
CONCATENATE G_INREC INTO g_inrec NO-GAP.
IF SY-SUBRC = 0.
MOVE G_INREC TO ITAB1.
ENDCASE.
*append itab.
LOOP AT ITAB1.
SPLIT ITAB1-STR AT 'X' INTO ITab-len ITab-wed ITab-hei.
APPEND ITab.
ENDLOOP.
ELSE.
L_EOF = 'C_TRUE'.
CONTINUE.
ENDIF.
ENDWHILE.
loop at itab.
write: itab-len.
endloop.
‎2009 Aug 25 9:20 AM
Hi,
try something like this
OPEN DATASET FILENAME FOR INPUT IN TEXT MODE ENCODING DEFAULT." MESSAGE L_MSG.
" check if sy-subrc is 0 (file exist on FS?)
IF sy-subrc = 8.
" I/O Error
ENDIF.
DO.
READ DATASET FILENAME INTO G_INREC.
IF sy-subrc = 0.
" Your logic with G_INREC
CLEAR ITAB.
SPLIT G_INREC AT 'X' INTO ITab-len ITab-wed ITab-hei.
APPEND ITab.
ELSE.
EXIT.
ENDIF.
ENDDO.
Regards,
Ivan
‎2009 Aug 25 9:20 AM
Hi,
try something like this
OPEN DATASET FILENAME FOR INPUT IN TEXT MODE ENCODING DEFAULT." MESSAGE L_MSG.
" check if sy-subrc is 0 (file exist on FS?)
IF sy-subrc = 8.
" I/O Error
ENDIF.
DO.
READ DATASET FILENAME INTO G_INREC.
IF sy-subrc = 0.
" Your logic with G_INREC
CLEAR ITAB.
SPLIT G_INREC AT 'X' INTO ITab-len ITab-wed ITab-hei.
APPEND ITab.
ELSE.
EXIT.
ENDIF.
ENDDO.
Regards,
Ivan
‎2009 Aug 25 9:25 AM
Hi, Have a look at the previous solution. You have an internal table ITAB. To fill this table use the APPEND statement and not the MOVE. Probably your table stays empty. Succes
‎2009 Aug 25 9:34 AM
Hi,
Try this way,
constants: con_tab type c value cl_abap_char_utilities=>HORIZONTAL_TAB.
DATA: X_INPUT_REC,
REC_TYPE(4) TYPE C.
DATA: BEGIN OF ITAB OCCURS 0,
LEN(2),
WED(2),
hei(2),
END OF ITAB.
DATA: wa_itab TYPE itab.
DATA: G_INREC(255) .
data str(255).
*data: FILEN TYPE i default ' '.
DATA: L_EOF(50) VALUE 'C_FALSE'.
*DATA: L_EOF1(50) VALUE 'C_TRUE'.
PARAMETERS: FILENAME(80) DEFAUlt '\\192.168.100.33\sapmnt\ids\sys\global\sample.txt' .
*CONCATENATE FILEN INTO FILENAME NO-GAP.
OPEN DATASET FILENAME FOR INPUT IN TEXT MODE ENCODING DEFAULT." MESSAGE L_MSG.
WHILE L_EOF NE 'C_TRUE'.
READ DATASET FILENAME INTO G_INREC.
if sy-subrc = 0.
SPLIT G_INREC AT con_tab INTO wa_itab-len wa_itab-wed wa_itab-hei.
MOVE-CORRESPONDING wa_uploadtxt TO wa_upload.
APPEND wa_itab TO itab.
ELSE.
L_EOF = 'C_TRUE'.
CONTINUE.
ENDIF.
ENDWHILE.
loop at itab.
write: itab-len.
endloop.
Regards,
Vik
‎2009 Nov 03 7:17 AM