25.01.2005, 16:03 | #1 |
Участник
|
Переполнение во внутреннем стеке компилятора.
Добрый вечер.
Создаю файл классом CommaIo: PHP код:
Переполнение во внутреннем стеке компилятора. Пробовал создать файл с помощью классов AsciiIo, BinaryIo - тот же результат. Как же запихнуть в файл столько значений? |
|
25.01.2005, 16:06 | #2 |
Участник
|
Обратный слэш в строке работает как спец.символ.
его надо экранировать - писать два обратных слэша |
|
25.01.2005, 16:33 | #3 |
Участник
|
Это я знаю, более того в коде так и записано:
commaIo = new CommaIo(fileDir + '\\_DOC.DBF', "W"); не знаю, почему так отобразилось в посте В общем дело не в этом |
|
25.01.2005, 16:54 | #4 |
Участник
|
форум тоже воспринимает как спец.символ
тогда не знаю. правда я не пробовал использовать символ _ в названиях файлов... а как много значений у вас в аргументах write? может можно уменьшить? |
|
25.01.2005, 17:07 | #5 |
Участник
|
С названием все в порядке Файл создается там где надо и значения в него записываются, если их не так много. Но я не могу их сократить - это структура БЭСТовского файла выгрузки. Там около 60 полей и похоже это не предел
Может как-то в 2 захода писать? правда 2 раза write создают 2 строки, что конечно логично, но нужна-то одна.. |
|
25.01.2005, 17:16 | #6 |
Участник
|
не знаю. передавать 60 за раз еще не пробовал.
поэкспериментируйте с количеством параметров методом дихотомии. 5 экспериментов вполне достаточно. скорее всего, собака здесь и порылась. а перевод строки - уберите разделитель записей и вставляйте '\n' вручную, когда необходимо. |
|
25.01.2005, 17:20 | #7 |
экс-модератор
|
CommaIO.writeExp(container p1)
правда, у контейнера тоже, наверно, есть предел размера... |
|
25.01.2005, 17:40 | #8 |
Участник
|
Вариант с контейнером тоже дал такую же ошибку.
В итоге записываю за 2 раза. Выглядит так: PHP код:
Так или иначе, проблема решена, всем спасибо |
|