Sapforum.Biz

Инструменты => ABAP - Инструментальные средства => Тема начата: Uukrul от Октябрь 13, 2009, 10:09:11 am

Название: Как присвоить символ TAB в текстовое поле...
Отправлено: Uukrul от Октябрь 13, 2009, 10:09:11 am
В общем это, есть поле типа DATA: l_char(1) type c. Надо в него занести символ табуляции с кодом 09h, что-то у меня не вышло, вроде как то ли константа какая есть, то ли еще как это сделать?
Название: Re: Как присвоить символ TAB в текстовое поле...
Отправлено: DiVo от Октябрь 13, 2009, 12:10:50 pm
вот так не подойдет?

Код: You are not allowed to view links. Register or Login
l_char = cl_abap_char_utilities=>horizontal_tab.
Название: Re: Как присвоить символ TAB в текстовое поле...
Отправлено: Uukrul от Октябрь 13, 2009, 02:04:10 pm
You are not allowed to view links. Register or Login
вот так не подойдет?
Подойдет наверное... просто я этот класс, зараза склероз замучил, никак найти не мог... Спасибо!
Название: Re: Как присвоить символ TAB в текстовое поле...
Отправлено: Uukrul от Октябрь 13, 2009, 02:36:11 pm
Мда, а таки нет.. в 4.6 зараза, этих классов нет... вот почему я тут ничего не нашел... тут вроде как что-то другое есть для TAB.
Название: Re: Как присвоить символ TAB в текстовое поле...
Отправлено: DiVo от Октябрь 13, 2009, 03:45:55 pm
тогда может просто тупо присвоить?

Код: You are not allowed to view links. Register or Login
DATA: c_tab  TYPE x VALUE '09',
      l_char TYPE c.

l_char = c_tab.
Название: Re: Как присвоить символ TAB в текстовое поле...
Отправлено: Uukrul от Октябрь 13, 2009, 04:12:29 pm
You are not allowed to view links. Register or Login
тогда может просто тупо присвоить?

Код: You are not allowed to view links. Register or Login
DATA: c_tab  TYPE x VALUE '09',
      l_char TYPE c.

l_char = c_tab.
Да это я сразу попробовал.. на выходе в l_char = '0'... а должно быть ну скажем так в прочитанной строке табуляции показываются как /h/... однако вот так  ::)
Название: Re: Как присвоить символ TAB в текстовое поле...
Отправлено: DiVo от Октябрь 13, 2009, 04:13:45 pm
сорри, тогда можно попробовать с помощью field symbols:
Код: You are not allowed to view links. Register or Login
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.
Название: Re: Как присвоить символ TAB в текстовое поле...
Отправлено: Uukrul от Октябрь 13, 2009, 04:25:55 pm
You are not allowed to view links. Register or Login
сорри, тогда можно попробовать с помощью field symbols:
Код: You are not allowed to view links. Register or Login
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!
Название: Re: Как присвоить символ TAB в текстовое поле...
Отправлено: Dmitriy от Октябрь 13, 2009, 04:33:25 pm
А в чем сама задача, ну или часть ее (на более высоком уровне)?
Название: Re: Как присвоить символ TAB в текстовое поле...
Отправлено: Uukrul от Октябрь 13, 2009, 04:58:02 pm
You are not allowed to view links. Register or Login
А в чем сама задача, ну или часть ее (на более высоком уровне)?
Сроки читаем через READ DATASET ps_files-file INTO l_string, а там разделитель у нас символ табуляции.. вот и надо распарсить эту фигню...
Название: Re: Как присвоить символ TAB в текстовое поле...
Отправлено: Uukrul от Октябрь 13, 2009, 05:04:10 pm
В итоге в просмотре строка видится типа как: 295323962461/h/380662374344/h/30, вот вместо вот этих вот /h/ стоит символ #09 сам собой искать в строке /h/ смысле нет, так как работает конвертация строки перед выводом.
Название: Re: Как присвоить символ TAB в текстовое поле...
Отправлено: Dmitriy от Октябрь 13, 2009, 08:28:56 pm
Ну кроме SPLIT что-то на ум пока больше ничего не приходит...
Название: Re: Как присвоить символ TAB в текстовое поле...
Отправлено: Uukrul от Октябрь 13, 2009, 08:40:36 pm
You are not allowed to view links. Register or Login
Ну кроме SPLIT что-то на ум пока больше ничего не приходит...
Да похоже что так и есть, но просто изначально есть функциональный модуль со своей логикой, куда передаешь строку и вот этот самый разделитель. Оно там работает и все что надо считает, соответственно если SPLIT, то всю логику надо тащить себе в код, что не хотелось бы. Короче для 4.6C самым быстрым оказалось административно за декларировать, что файл должен быть с разделителем ';' (точка с запятой) да и всех делов.
Название: Re: Как присвоить символ TAB в текстовое поле...
Отправлено: DiVo от Октябрь 13, 2009, 09:21:27 pm
Цитата: Uukrul  link=topic=861.msg5389#msg5389 date=1255440355
Так выходит <fs> типа X, а мне нужно чтобы оно было типа C, так как я передаю потом его как параметр в функцию...

так а если передавать в функцию l_char, а не <fs>??
Код: You are not allowed to view links. Register or Login
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 ...

по идее такая конструкция должна работать :-\
Название: Re: Как присвоить символ TAB в текстовое поле...
Отправлено: Uukrul от Октябрь 13, 2009, 10:26:35 pm
You are not allowed to view links. Register or Login
так а если передавать в функцию l_char, а не <fs>??
Да оно сразу = 0, принимает значение... пробовал. Короче, таки пока похоже никак не вывернуться, в общем формат файла поменяют...