AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.04.2008, 10:42   #1  
Zoe is offline
Zoe
Участник
 
14 / 10 (1) +
Регистрация: 23.03.2008
Адрес: Санкт-Петербург
Разбор строк
Доброе утро!!! Опять я обращаюсь к вам на форум с вопросом в надежде на ценный совет... Подскажите, пожалуйста, можно ли в Axapt’е (3.0) разобрать строку (str) на символы и работать с КАЖДЫМ символом (например, различать символы «буква – число»)? Как лучше это реализовать: на стороне Axapt’ы (в случае, если такое все-таки возможно) или на стороне FastReport, с помощью которого происходит вывод на печать? Направьте, пожалуйста, мою мысль в нужное русло J Спасибо всем заранее!
Старый 24.04.2008, 11:03   #2  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Так не подойдет?
X++:
    container str2charcon(str s)
    {
        int i;
        container ret;
        ;
        for (i=1;i<=strlen(s);i++)
        {
            ret += substr(s,i,1);
        }
        return ret;
    }
Потом можно анализировать элементы контейнера
Старый 24.04.2008, 11:06   #3  
Alenka is offline
Alenka
Участник
 
58 / 25 (1) +++
Регистрация: 19.04.2006
Выделить символ можно с помощью стандартной функции substr,
определить является ли буква числом можно с помощью функции strNFind:
X++:
!strNFind(_str, '0123456789', 1, strlen(_str))
, где _str - проверяемая буква
Старый 24.04.2008, 14:11   #4  
Zoe is offline
Zoe
Участник
 
14 / 10 (1) +
Регистрация: 23.03.2008
Адрес: Санкт-Петербург
Спасибо огромное всем за подсказки! Все отлично работает - это как раз то, что мне и было нужно!
Старый 04.05.2008, 09:08   #5  
KingPeas is offline
KingPeas
Участник
Аватар для KingPeas
 
163 / 35 (2) +++
Регистрация: 09.01.2007
Адрес: Россия, Новосибирск
В целом думаю было бы правильно использовать уже существующие функции как например
X++:
static container str2con_RU(str _string, str _separator = ",")
{
    container   con;
    int         pos, oldPos = 1;

    do
    {
        pos    =  strScan(_string, _separator, pos ? pos + strLen(_separator) : 1, strLen(_string));
        con    += subStr(_string, oldPos, pos ? pos - oldPos : strLen(_string) + 1 - oldPos);
        oldPos =  pos + strLen(_separator);
    }
    while (pos);

    return con;
}
из Global. Передаете в функцию вашу строку и в качестве разделителя пустой параметр и на выходе получаете готовый контейнер. Это конечно будет отрабатывать несколько медленней, зато универсально)
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ.
Теги
ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Тормозит копирование строк в буфер обмена ivas DAX: Программирование 20 21.08.2007 15:05
Пользовательский генератор строк-перечислений...- 2: Доп.вкладка для SysQueryForm Gustav DAX: База знаний и проекты 1 04.05.2007 18:04
Очень маленькая высота строк в таблице формы (1-2 мм) Gustav DAX: Программирование 11 17.06.2006 11:57
Предельное количество строк в Report Владимир Максимов DAX: Программирование 1 22.12.2005 15:02
БАГ: копирование строк накладных в новый заказ Антон Солдатов DAX: Функционал 2 03.12.2004 09:02

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:09.