2013-10-24 180 views
0

我有一個說明「帶有標籤的描述」。它的確有標籤。 SAP ABAP將此選項卡轉換爲#,使其顯示爲「帶有#標籤的描述」。我希望這個被SPACE取代。我想寫一個代碼來檢查有效的字符以及任何無效的空格替換。用SAP ABAP中的空格替換特殊字符

我有下面的代碼,但它並沒有檢查所有的字符。

REPLACE ALL OCCURRENCES OF cl_abap_char_utilities=>horizontal_tab 
    IN cs_orderadm_h_badi-description WITH ` `. 

我曾經想過用不斷的寫出來每一個有效的字符作爲一個恆定的,但我需要一個更好的方式來做到這一點。

任何幫助或建議表示讚賞。請記住,這是針對SAP ABAP的轉換。謝謝

+1

是否需要與語言相關的?由於不可打印字符的列表取決於所使用的語言和字體。 – DW8Reaper

回答

0

更換

IF cs_orderadm_h_badi-description = gc_hex_char. 

if cs_order_adm_h_badi-description CO gc_hex_char. 
1
WRITE cs_orderadm_h_badi-description TO lw_hash_desc. 
REPLACE ALL OCCURRENCES OF '#' IN lw_hash_desc WITH ` `. 
cs_orderadm_h_badi-description = lw_hash_desc. 

將適用於所有特殊字符,但也將取代現有的散列。如果你期望在你的字符串中使用這些字符,你首先需要用一些獨特的東西替換它們,然後在上面的代碼之後用哈希代替。

3

幾乎重複的Looking for Non-Printable characters inside internal table ABAP

REPLACE ALL OCCURRENCES OF REGEX '[^[:print:]]+$' 
    IN cs_orderadm_h_badi-description WITH '' 
    IGNORING CASE. 
+0

我想以某種方式對其進行編碼,以便檢查有效字符而不是無效 – user2916178

+0

爲什麼?你應該想檢查無效並替換那些? – tomdemuyt

+0

我基本上試圖做這樣的工作 **常量:gc_hex_char(66)VALUE'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!「£$%^&*()_ + = - [] {}; @〜#/。 ,<>? ' IF cs_orderadm_h_badi-描述= gc_hex_char。 ELSE。 REPLACE cl_abap_char_utilities => horizo​​ntal_tab IN WITH''cs_orderadm_h_badi-描述的所有出現。 ENDIF。' ** – user2916178