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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.01.2005, 16:03   #1  
Smith is offline
Smith
Участник
 
76 / 10 (1) +
Регистрация: 02.09.2004
Переполнение во внутреннем стеке компилятора.
Добрый вечер.

Создаю файл классом CommaIo:

PHP код:
    commaIo = new CommaIo(fileDir '\\_DOC.DBF'"W");
commaIo.outFieldDelimiter('\t');
//Шапка файла 
commaIo.write('1''2''3' //много значений); 
При запуске возникает ошибка:

Переполнение во внутреннем стеке компилятора.

Пробовал создать файл с помощью классов AsciiIo, BinaryIo - тот же результат.
Как же запихнуть в файл столько значений?
Старый 25.01.2005, 16:06   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Обратный слэш в строке работает как спец.символ.
его надо экранировать - писать два обратных слэша
Старый 25.01.2005, 16:33   #3  
Smith is offline
Smith
Участник
 
76 / 10 (1) +
Регистрация: 02.09.2004
Это я знаю, более того в коде так и записано:
commaIo = new CommaIo(fileDir + '\\_DOC.DBF', "W");
не знаю, почему так отобразилось в посте

В общем дело не в этом
Старый 25.01.2005, 16:54   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
форум тоже воспринимает как спец.символ
тогда не знаю.
правда я не пробовал использовать символ _ в названиях файлов...

а как много значений у вас в аргументах write?
может можно уменьшить?
Старый 25.01.2005, 17:07   #5  
Smith is offline
Smith
Участник
 
76 / 10 (1) +
Регистрация: 02.09.2004
С названием все в порядке Файл создается там где надо и значения в него записываются, если их не так много. Но я не могу их сократить - это структура БЭСТовского файла выгрузки. Там около 60 полей и похоже это не предел
Может как-то в 2 захода писать? правда 2 раза write создают 2 строки, что конечно логично, но нужна-то одна..
Старый 25.01.2005, 17:16   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
не знаю. передавать 60 за раз еще не пробовал.
поэкспериментируйте с количеством параметров методом дихотомии.
5 экспериментов вполне достаточно.

скорее всего, собака здесь и порылась.

а перевод строки - уберите разделитель записей и вставляйте '\n' вручную, когда необходимо.
Старый 25.01.2005, 17:20   #7  
maxsmirnov is offline
maxsmirnov
экс-модератор
 
268 / 25 (1) +++
Регистрация: 08.07.2003
Адрес: Москва
CommaIO.writeExp(container p1)

правда, у контейнера тоже, наверно, есть предел размера...
Старый 25.01.2005, 17:40   #8  
Smith is offline
Smith
Участник
 
76 / 10 (1) +
Регистрация: 02.09.2004
Вариант с контейнером тоже дал такую же ошибку.
В итоге записываю за 2 раза. Выглядит так:
PHP код:
    commaIo.outRecordDelimiter('\\t');
    
//Шапка файла
    
commaIo.write(...);
    
commaIo.write(...);
    
commaIo.outRecordDelimiter('\\n');
    
commaIo.write(...);
    
commaIo.outRecordDelimiter('\\t');
    
commaIo.write(...); 
Почему не использовать '\n' в завершающем write? Почему-то не сработало Все записалось в одну строку.

Так или иначе, проблема решена, всем спасибо
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Глюк компилятора Eldar9x DAX: Программирование 5 21.01.2008 14:03
Ошибка компилятора (синтаксического анализатора) Maxim Gorbunov DAX: База знаний и проекты 1 01.04.2007 15:08
Переполнение исполнения кода Ed1k DAX: Программирование 5 11.01.2007 17:52
Странное поведение компилятора Alks DAX: Программирование 1 08.01.2005 11:14
Переполнение во внутреннем стеке компилятора Garic DAX: Программирование 2 15.11.2002 11:05

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

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

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