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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.09.2003, 15:20   #1  
SnowMan is offline
SnowMan
Участник
 
57 / 10 (1) +
Регистрация: 15.08.2003
Адрес: Москва
? str2con баг или глубокий смысл?
Добрый день!

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

PHP код:
static void Job7(Args _args)
{
  
container c;
  
str       ls_tmp '10 str 20; 30qqq;www;eee';
  
int       i;
  ;

  
str2con(ls_tmp,';');
  for (
i=1i<=conlen(c); i++)
  {
    print 
conpeek(c,i);
  }
  
pause;

может в этом есть глубокий смысл?

PS
Функция str2con_ru работает правильно, но она и имеет другой код...
наверное, не даром...
__________________
Дмитрий Гришин
Старый 22.09.2003, 09:57   #2  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Похоже авторы этой функции старались сделать ее интеллектуальной. По крайне мере, в ней есть такой код:
PHP код:
        if (match('<:d'_current))
            
ret += str2int(_current);
        else
            
ret += _current
То есть, если строка начинается с числа, то делается попытка преобразовать строку в число и уже число положить в контейнер. Естественно, то, что не число - обрезается.
Как изменить такое поведение - думаю понятно.

Насчет того, почему сделанно именно так - не уверен, но думаю, что баг. По крайне мере я посмотрел по перекрестным ссылкам, где используется у меня этот метод - получил следующий результат:

Tables -> Tutorial_Battleships.read()
Tables -> Tutorial_Battleships.write()
Tables -> Country.webLookupCountry()
Classes -> WebFormHtml.layoutEdit()
Старый 26.05.2010, 16:56   #3  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от Андре Посмотреть сообщение
Насчет того, почему сделанно именно так - не уверен, но думаю, что баг
Только что наткнулся на эту баго-фичу. Судя по всему, тут есть и баг и, по-мнению Майкрософта, фича. Начиная с четверки код выглядит вот так:
X++:
match('<:d+>', _current)
То есть, теперь преобразование в число идет только если строка состоит исключительно из цифр. Хотя я все-равно считаю это совершенно излишней и неочевидной заранее интеллектуальностью, так как из строки '012345' метод зачем-то сделает '12345'. Собственно, обрезание лидирующего нуля мы и обнаружили.
За это сообщение автора поблагодарили: lev (1).
Теги
баг

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Смысл перехода с 3.0 sp5 на 4.0 или 5.0 Ватрушка DAX: Функционал 39 11.12.2009 18:32
Деловое отношение – родитель и Разовый клиент. В чем их смысл? ShyGuy DAX: Прочие вопросы 4 10.03.2009 10:28
Смысл в перекрытии метода setPurchStatus у PurchLineType_Quotation? 3oppo DAX: Программирование 1 16.07.2008 12:35
Нашёл баг, причем очень похоже на баг ядра (SP5 FP2 KR2) Deep Dreamer DAX: Программирование 5 10.11.2006 18:04
баг в 2.5. Будьте осторожнее с символом "_" подчеркивание levsha DAX: Программирование 5 07.12.2004 12:26
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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