Sapforum.Biz
Инструменты => ABAP - Инструментальные средства => Тема начата: Uukrul от Октябрь 13, 2009, 10:09:11 am
-
В общем это, есть поле типа DATA: l_char(1) type c. Надо в него занести символ табуляции с кодом 09h, что-то у меня не вышло, вроде как то ли константа какая есть, то ли еще как это сделать?
-
вот так не подойдет?
l_char = cl_abap_char_utilities=>horizontal_tab.
-
вот так не подойдет?
Подойдет наверное... просто я этот класс, зараза склероз замучил, никак найти не мог... Спасибо!
-
Мда, а таки нет.. в 4.6 зараза, этих классов нет... вот почему я тут ничего не нашел... тут вроде как что-то другое есть для TAB.
-
тогда может просто тупо присвоить?
DATA: c_tab TYPE x VALUE '09',
l_char TYPE c.
l_char = c_tab.
-
тогда может просто тупо присвоить?
DATA: c_tab TYPE x VALUE '09',
l_char TYPE c.
l_char = c_tab.
Да это я сразу попробовал.. на выходе в l_char = '0'... а должно быть ну скажем так в прочитанной строке табуляции показываются как /h/... однако вот так ::)
-
сорри, тогда можно попробовать с помощью field symbols:
CONSTANTS: c_tab TYPE x VALUE '09'.
DATA: l_tab TYPE c.
FIELD-SYMBOLS: <fs>.
ASSIGN l_tab TO <fs> TYPE 'X'.
<fs> = c_tab.
-
сорри, тогда можно попробовать с помощью field symbols:
CONSTANTS: c_tab TYPE x VALUE '09'.
DATA: l_tab TYPE c.
FIELD-SYMBOLS: <fs>.
ASSIGN l_tab TO <fs> TYPE 'X'.
<fs> = c_tab.
Так выходит <fs> типа X, а мне нужно чтобы оно было типа C, так как я передаю потом его как параметр в функцию... а при таком вызове оно таки дамп так как конфликт типов... что-то меня запарили с этими разделителями вида TAB!
-
А в чем сама задача, ну или часть ее (на более высоком уровне)?
-
А в чем сама задача, ну или часть ее (на более высоком уровне)?
Сроки читаем через READ DATASET ps_files-file INTO l_string, а там разделитель у нас символ табуляции.. вот и надо распарсить эту фигню...
-
В итоге в просмотре строка видится типа как: 295323962461/h/380662374344/h/30, вот вместо вот этих вот /h/ стоит символ #09 сам собой искать в строке /h/ смысле нет, так как работает конвертация строки перед выводом.
-
Ну кроме SPLIT что-то на ум пока больше ничего не приходит...
-
Ну кроме SPLIT что-то на ум пока больше ничего не приходит...
Да похоже что так и есть, но просто изначально есть функциональный модуль со своей логикой, куда передаешь строку и вот этот самый разделитель. Оно там работает и все что надо считает, соответственно если SPLIT, то всю логику надо тащить себе в код, что не хотелось бы. Короче для 4.6C самым быстрым оказалось административно за декларировать, что файл должен быть с разделителем ';' (точка с запятой) да и всех делов.
-
Так выходит <fs> типа X, а мне нужно чтобы оно было типа C, так как я передаю потом его как параметр в функцию...
так а если передавать в функцию l_char, а не <fs>??
CONSTANTS: c_tab TYPE x VALUE '09'.
DATA: l_tab TYPE c.
FIELD-SYMBOLS: <fs>.
ASSIGN l_tab TO <fs> TYPE 'X'.
<fs> = c_tab.
..
*** где-то внутри ФМ
SPLIT l_string AT l_tab INTO ...
по идее такая конструкция должна работать :-\
-
так а если передавать в функцию l_char, а не <fs>??
Да оно сразу = 0, принимает значение... пробовал. Короче, таки пока похоже никак не вывернуться, в общем формат файла поменяют...