|
原帖由 nidazhi 于 2007-12-17 13:55 发表 ![]()
YM的算号器,很好很强大
REPORT z_testym15 .
PARAMETERS:
sys_id(3) DEFAULT '000' ,
sys_numb(2) DEFAULT '00' ,
msg_ser(15) DEFAULT 'SUPERJXY' ,
ins_no(10) DEFAULT '0000000000'.
START-OF-SELECTION.
DATA key(10).
PERFORM get_sp_value
USING
sys_id
sys_numb
msg_ser
ins_no
CHANGING
key.
END-OF-SELECTION.
WRITE key.
*&---------------------------------------------------------------------*
*& Form get_sp_value
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_PF_SID text
* -->P_PF_SYSNO text
* -->P_PF_SERVER text
* create( encoding = '1100' ).
lf_len = STRLEN( lf_string ).
IF lf_string(lf_len) CN lc_allowed_chars.
ELSE.
* Fold the input string to a lc_part_len long string
WHILE lf_len > 0.
lf_part = lf_string(lc_part_len).
SHIFT lf_string BY lc_part_len PLACES.
lf_len = STRLEN( lf_string ).
CALL METHOD lo_conv_to_x->reset.
CALL METHOD lo_conv_to_x->write( data = lf_part n = -1 ).
lf_xbuffer = lo_conv_to_x->get_buffer( ).
lf_finalx = lf_finalx BIT-XOR lf_xbuffer.
ENDWHILE.
lf_key = 12.
PERFORM scramble USING lf_finalx
lf_key
lc_part_len
CHANGING lf_finalf
lf_subrc.
IF NOT lf_finalf IS INITIAL.
p_pf_value = lf_finalf.
ELSE.
CLEAR p_pf_value.
ENDIF.
ENDIF.
ENDFORM. "get_sp_value
*&---------------------------------------------------------------------*
*& Form scramble
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_LF_FINALX text
* -->P_LF_KEY text
* -->P_LC_PART_LEN text
*
弱弱的问一下阿,请问该算号器怎么使用阿?
一串代码,怎么执行呢?
谢谢各位大虾,见笑了! |
|