#string split function
#ignore empty value
#p_arg1: input value1 STRING
#p_arg2: input value2 STRING
#r_arr: return value1 DYNAMIC ARRAY OF STRING
#Example: CALL split(str1, str2, arr1)
#   str1 = 'abc-def--1-2'
#   str2 = '-'
#   arr1.getLength() = 4
#   arr1[1] = abc , arr1[2] = def , arr1[3] = 1 , arr1[4] = 2
FUNCTION split(p_arg1,p_arg2,r_arr)
    DEFINE p_arg1   STRING
    DEFINE p_arg2   STRING
    DEFINE r_arr    DYNAMIC ARRAY OF STRING
    DEFINE l_cnt    INTEGER
    DEFINE l_str    STRING
    DEFINE tok      base.StringTokenizer

    CALL r_arr.clear()
    
    LET tok = base.StringTokenizer.create(p_arg1,p_arg2)
    LET l_cnt = tok.countTokens()
    
    IF cl_null(p_arg2) OR l_cnt <= 0 THEN
        RETURN
    ELSE
        WHILE tok.hasMoreTokens()
            LET l_str = tok.nextToken()
            LET l_str = l_str.trim()
            IF NOT cl_null(l_str) THEN
                CALL r_arr.appendElement()
                LET r_arr[r_arr.getLength()] = l_str
            END IF
        END WHILE
    END IF
END FUNCTION

arrow
arrow
    文章標籤
    TIPTOP 4GL 鼎新
    全站熱搜

    伊 發表在 痞客邦 留言(0) 人氣()