Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

getting problem in file name

Former Member
0 Likes
1,057

hi ,

i have to get the filename while uploading into one variable ,

for eg

suppose file name is sivakumar.txt

1.if i upload from desktop C:\Documents and Settings\sivakumar\Desktop\sivakumar.txt

2. if from c: c:\sivakumar.txt

i have to get only sivakumar.txt in the both case ....

i should upload the file from any where but i should get filename in my variable

right now i am using split command for desktop file could any one can help me

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
647

you can try this code may be helpful for you


data : text LIKE RLGRAP-FILENAME VALUE
                      'C:Documents and SettingssivakumarDesktopsivakumar.txt'.

DATA : LEN TYPE I,
       POS TYPE I,
       V_CH,
       TEMP(50).
COMPUTE LEN = STRLEN( TEXT ).
POS = LEN - 1.
DO LEN TIMES.
V_CH = TEXT+POS(1).
IF V_CH = ''.
EXIT.
ELSE.
CONCATENATE TEMP V_CH INTO TEMP.
ENDIF.
POS = POS - 1.
ENDDO.

CALL FUNCTION 'STRING_REVERSE'
  EXPORTING
    STRING          = TEMP
    LANG            = SY-LANGU
 IMPORTING
   RSTRING         = TEMP
 EXCEPTIONS
   TOO_SMALL       = 1
   OTHERS          = 2
          .
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

WRITE : / TEMP.

regards

shiba dutta

4 REPLIES 4
Read only

Former Member
0 Likes
647

Hi

use PC_SPLIT_COMPLETE_FILENAME function module

Read only

Former Member
0 Likes
647

hi

use event

at selection-screen on value-request for p_field_name

call function 'F4_FILENAME'

Read only

Former Member
0 Likes
647

Hi

here check this program i am spliting the record depend upon ',' and dont use ws_upload etc fm's are obsolete....

data: begin of itab_string occurs 0,

record type char255,

end of itab_string.

data: L_FILETABLE TYPE FILETABLE,

L_FILETAB_H TYPE FILETABLE WITH HEADER LINE.

data: p_file1 type string.

  • selection screen .

PARAMETERS: P_FILE TYPE LOCALFILE.

initialization.

at selection-screen on value-request for P_FILE.

  • IF THE USER SELECT EXTENTION BUTTON IT WILL OPEN THE LOCAL DIRECTORY FOR SELECTING THE FILE LOCATION.

CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG

  • EXPORTING

  • WINDOW_TITLE =

  • DEFAULT_EXTENSION = 'CSV'

  • DEFAULT_FILENAME = 'C:\Documents and Settings\196093\Desktop\STATUS.csv'

  • FILE_FILTER =

  • INITIAL_DIRECTORY = 'C:\Documents and Settings\196093\Desktop\'

  • MULTISELECTION =

  • WITH_ENCODING =

CHANGING

FILE_TABLE = L_FILETABLE

RC = RC

  • USER_ACTION =

  • FILE_ENCODING =

EXCEPTIONS

FILE_OPEN_DIALOG_FAILED = 1

CNTL_ERROR = 2

ERROR_NO_GUI = 3

NOT_SUPPORTED_BY_GUI = 4

others = 5

.

IF SY-SUBRC <> 0.

ELSE.

LOOP AT l_filetable INTO L_FILETAB_H.

P_FILE = L_FILETAB_H-FILENAME.

move p_file to p_file1.

EXIT.

ENDLOOP.

ENDIF.

  • passing the selected file name to gui_upload for loading the data

  • into internal table

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = p_file1

  • FILETYPE = 'ASC'

  • HAS_FIELD_SEPARATOR = ' '

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • CHECK_BOM = ' '

  • NO_AUTH_CHECK = ' '

  • IMPORTING

  • FILELENGTH =

  • HEADER =

TABLES

DATA_TAB = itab_string

EXCEPTIONS

FILE_OPEN_ERROR = 1

FILE_READ_ERROR = 2

NO_BATCH = 3

GUI_REFUSE_FILETRANSFER = 4

INVALID_TYPE = 5

NO_AUTHORITY = 6

UNKNOWN_ERROR = 7

BAD_DATA_FORMAT = 8

HEADER_NOT_ALLOWED = 9

SEPARATOR_NOT_ALLOWED = 10

HEADER_TOO_LONG = 11

UNKNOWN_DP_ERROR = 12

ACCESS_DENIED = 13

DP_OUT_OF_MEMORY = 14

DISK_FULL = 15

DP_TIMEOUT = 16

OTHERS = 17

.

IF SY-SUBRC <> 0.

MESSAGE I000(Z00) WITH 'PLEASE PROVIDE CORRECT FILE NAME'.

ENDIF.

loop at itab_string.

  • now split the statuses

split itab_string at ',' into itab_status-aufnr itab_status-asttx itab_status-asttx1.

  • and move one internal table

append itab_status.

clear itab_status.

endloop.

reward points to all helpful answers

kiran.M

Read only

Former Member
0 Likes
648

you can try this code may be helpful for you


data : text LIKE RLGRAP-FILENAME VALUE
                      'C:Documents and SettingssivakumarDesktopsivakumar.txt'.

DATA : LEN TYPE I,
       POS TYPE I,
       V_CH,
       TEMP(50).
COMPUTE LEN = STRLEN( TEXT ).
POS = LEN - 1.
DO LEN TIMES.
V_CH = TEXT+POS(1).
IF V_CH = ''.
EXIT.
ELSE.
CONCATENATE TEMP V_CH INTO TEMP.
ENDIF.
POS = POS - 1.
ENDDO.

CALL FUNCTION 'STRING_REVERSE'
  EXPORTING
    STRING          = TEMP
    LANG            = SY-LANGU
 IMPORTING
   RSTRING         = TEMP
 EXCEPTIONS
   TOO_SMALL       = 1
   OTHERS          = 2
          .
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

WRITE : / TEMP.

regards

shiba dutta