20170225 ABAP獲取字符串長度/字節長度


函數YGET_CHAR_LONG:

FUNCTION YGET_CHAR_LONG.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(STRING) TYPE  STRING OPTIONAL
*"  EXPORTING
*"     VALUE(STR) TYPE  STRING
*"     VALUE(G_LONG) TYPE  I    "字符串長度
*"     VALUE(G_LONG_STR) TYPE  I"字節長度
*"----------------------------------------------------------------------

  DATA: W_UCCP TYPE I,
  W_TEMP(2) TYPE C,
  W_LEFT(100) TYPE C,
  W_LEN(10) TYPE C,
  S_LEN TYPE I
  .
  W_LEFT = STRING.

  DATA : BEGIN OF LINE,
         TEXT TYPE C,
         END OF LINE,
         ITAB LIKE TABLE OF LINE WITH HEADER LINE.

*DATA str TYPE string.
  DO. CALL FUNCTION 'TEXT_SPLIT' EXPORTING LENGTH = 2 TEXT = W_LEFT IMPORTING LINE = W_TEMP REST = W_LEFT. CALL METHOD CL_ABAP_CONV_OUT_CE=>UCCPI EXPORTING CHAR = W_TEMP RECEIVING UCCP = W_UCCP. W_LEN = STRLEN( W_TEMP ). *  WRITE: /1 w_temp, *  10 w_uccp, *  25 w_len. IF W_UCCP > 256. CONCATENATE STR W_TEMP INTO STR. ENDIF. IF W_LEFT IS INITIAL OR SY-INDEX > 100. EXIT. ENDIF. ENDDO.
  IF STR IS NOT INITIAL.
    DATA:T_LEN TYPE I.
    CLEAR :  S_LEN,G_LONG_STR.
    T_LEN = STRLEN( STRING ).
    G_LONG = STRLEN( STRING ).

    S_LEN = STRLEN( STR ).
    T_LEN =  T_LEN - S_LEN .
    S_LEN = S_LEN * 2 .
    G_LONG_STR =  T_LEN + S_LEN.
*  WRITE :/,'CHARLEN=' ,charlen, 'STR= ',str.
  ENDIF.


ENDFUNCTION.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM