2013-10-24 1 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. Thanks

+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. замена всех вхождений cl_abap_char_utilities => horizontal_tab В cs_orderadm_h_badi-описание с' '. ENDIF. ** – user2916178