Разница между обоими элементами преобразования в ABAP - PullRequest
0 голосов
/ 11 октября 2019

Я не понимаю, в чем разница между обоими элементами в ABAP:

Старый элемент TRANSLATE:

TRANSLATE l_value USING '" '.

Новый элемент перевода:

l_value = translate( val = l_value from = '"' to = ' ' )
or 
l_value = translate( val = l_value from = '"' to = space )

Старый элемент работает нормально. Символ заменяется пробелом.

Но новый не устанавливает пробел, он смещает текст влево.

Я не понимаю .. сделать что-то не так?

Еще один вопрос:

Я использую тот же код для замены cl_abap_char_utilities=>horizontal_tab на SPACE.

Но как я могу заменить horizontal_tabsсо старым translate элементом?

1 Ответ

3 голосов
/ 11 октября 2019

Это упомянуто в документации функции перевода:

от и до являются символьными позициями выражения. Если они имеют фиксированную длину, конечные пробелы игнорируются.

Если вы хотите заменить его пробелом, используйте литерал текстовой строки вместо литерала текстового поля (см. documents ).

l_value = translate( val = l_value from = '"' to ` ` ).

ДляВторой вопрос: чтобы использовать старые TRANSLATE , просто объедините необходимые значения и передайте переменную в USING или используйте Шаблоны строк .

...