2011 Oct 10 1:00 AM
st_char-char1 = iv_string+0(1).
st_char-char2 = iv_string+1(1).
st_char-char3 = iv_string+2(1).
st_char-char4 = iv_string+3(1).
st_char-char5 = iv_string+4(1).
st_char-char6 = iv_string+5(1).
st_char-char7 = iv_string+6(1).
st_char-char8 = iv_string+7(1).
st_char-char9 = iv_string+8(1).
st_char-char10 = iv_string+9(1).
st_char-char11 = iv_string+10(1).
st_char-char12 = iv_string+11(1).
I am think about using field symbols, but not tried a few ways, still not working.
Thanks in advance.
Fay
Edited by: Fay Wang on Oct 10, 2011 2:17 AM
2011 Oct 10 2:01 AM
Follwoing could be a sample code for 3 fields:
TYPES: BEGIN OF lx_char,
char1 TYPE char1,
char2 TYPE char1,
Char3 TYPE char1,
END OF lx_char.
DATA: lv_counter TYPE int2,
lv_pos TYPE int2,
lv_count_char TYPE char2,
lv_field TYPE char5,
iv_string TYPE string,
st_char TYPE lx_char.
FIELD-SYMBOLS : <FS> TYPE ANY.
lv_counter = 0.
lv_pos = 0.
DO.
lv_counter = lv_counter + 1.
MOVE lv_counter TO lv_count_char.
CONCATENATE 'CHAR' lv_count_char INTO lv_field.
ASSIGN COMPONENT lv_field of STRUCTURE st_char TO <fs>.
IF sy-subrc EQ 0.
<fs> = iv_string+lv_pos(1).
lv_pos = lv_pos + 1.
ENDIF.
IF lv_counter GE 3.
EXIT.
ENDIF.
ENDDO.
st_char-char1 = iv_string+0(1).
st_char-char2 = iv_string+1(1).
st_char-char3 = iv_string+2(1).
st_char-char4 = iv_string+3(1).
st_char-char5 = iv_string+4(1).
st_char-char6 = iv_string+5(1).
st_char-char7 = iv_string+6(1).
st_char-char8 = iv_string+7(1).
st_char-char9 = iv_string+8(1).
st_char-char10 = iv_string+9(1).
st_char-char11 = iv_string+10(1).
st_char-char12 = iv_string+11(1).
I am think about using field symbols, but not tried a few ways, still not working.
Thanks in advance.
Fay
Edited by: Fay Wang on Oct 10, 2011 2:17 AM
2011 Oct 10 2:01 AM
Follwoing could be a sample code for 3 fields:
TYPES: BEGIN OF lx_char,
char1 TYPE char1,
char2 TYPE char1,
Char3 TYPE char1,
END OF lx_char.
DATA: lv_counter TYPE int2,
lv_pos TYPE int2,
lv_count_char TYPE char2,
lv_field TYPE char5,
iv_string TYPE string,
st_char TYPE lx_char.
FIELD-SYMBOLS : <FS> TYPE ANY.
lv_counter = 0.
lv_pos = 0.
DO.
lv_counter = lv_counter + 1.
MOVE lv_counter TO lv_count_char.
CONCATENATE 'CHAR' lv_count_char INTO lv_field.
ASSIGN COMPONENT lv_field of STRUCTURE st_char TO <fs>.
IF sy-subrc EQ 0.
<fs> = iv_string+lv_pos(1).
lv_pos = lv_pos + 1.
ENDIF.
IF lv_counter GE 3.
EXIT.
ENDIF.
ENDDO.
2011 Oct 10 2:48 AM
2011 Oct 10 2:49 AM
Fay,
Field Symbols will work as explained, but if your logic/data is so much uniform, then simplest solution I can think of is as below:
data: BEGIN OF st_char,
char1 TYPE char1,
char2 TYPE char1,
Char3 TYPE char1,
END OF st_char.
data: iv_string TYPE string.
st_char = iv_string. "this will automatically assign each single character in string to each field
Regards,
Diwakar
2011 Oct 11 12:31 AM
Thanks very much! It works!
I did consider this before, but didn't work for some reason.
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |