Damir написал(а):
А что означает?
IF l_type CA 'Cg'.
REPLACE ALL OCCURRENCES OF l_x00 IN l_xstring WITH l_x20 IN BYTE
MODE.
l_endia = 'B'.
ENDIF.
Выражение CA 'Cg' непонятно.
И для чего служить l_endia?
Насколько я понял, нулевые байты заменяются пробелами. Для чего?
на сколько я помню. (сейчас просто нету доступной выше чем 4.6, а класс cl_abap_conv_in_ce начинается только с 4.7) то
параметр endia указывает на последовательность считывания байтов. от старшего к младшему или на оборот.
т.к. в большенстве случаев (в моем случае было так). что числовые представления в X были записаны как раз от старшего в байта к младшему (в DBF файлах). поэтому это надо было отслеживать.
а выражение CA 'Cg' банально. если передаваемая переменная типа
'C' - (CHAR) или 'g' (то же какой то строковое, сейчас не помню). то считываем байты от младшего к старшему. для остальных наоборот. вот и все.
а вообще на сколько я помню все есть в хелпе как по describe feild
так и по классу cl_abap_conv_in_ce. вроде бы там все внятно.
а заменяем x00 на пробелы ... т.к. в строковых переменных x00 ты иначе как пробелами и не покажешь.

)