#0
by p_Dix
плиз, скажите есть ли внешняя компонента для работы с текстовым файлом и методами типа записать_строку, считать_строку примеры не помешают.
#0
by p_Dix
плиз, скажите есть ли внешняя компонента для работы с текстовым файлом и методами типа записать_строку, считать_строку примеры не помешают.
#10
by romix
Работать с текстовыми файлами встроенными средствами 1С опасно. Во-первых, жрет память по размеру текстового файла (в лучшем случае), а во-вторых, встроенные функции для работы с файлами не контролируют ошибок и не выдают исключений или кодов ошибок. В 8.0 это исправлено. В этом смысле, в 7.7 для последовательного чтения и записи текстовых файлов более правильно использовать системный объект Scripting.FileSystemObject
#11
by 427
Полный фздц.... Теперь уже протоколы работы с текстовыми файлами - опасные... Я валяюсь в ужасе... А текстовые файлы переноса по 20-30 мб пишутся... Ю. точно выиграет, если такие поучения выдавать на майдане...
#12
by romix
опасные - когда ошибка не контролируется (например, нет дискеты или неправильно указан путь - а 1С показывает, что все как бы ок), и когда жрет память по размеру файла переноса (если не в разы больше). То же самое - с XML.
#14
by 427
нет дискеты... А регламентную отчетность смотрел? она даже умеет говорить - в ставьте дискету... если ее нет... а еще классно посылает... если нет дороги
#15
by romix
(13,14) Они бы сами что-нибудь почитали для начала. Меня вполне устраивает Scripting.FileSystemObject, ибо работает хорошо и безглючно, и имеет больше возможностей.
#17
by romix
Можно. Если IE не обновить. Какие-то функции WSH не работают... Кажется, что-то связанное с имитацией нажатия на клавиши и с методом Activate. Но работа с файловой системой работает вроде бы везде. Также в 98 WSH может не стоять - Установка и Удаление программ.
#18
by 427
Похоже, что стиль ромикса - это внедрение зависимостей 1С от кучи не являющегося стандартным софта и как следствие - привязка клиента к себе...
#22
by death3d
Работаю с текстом уже довольно долго, и в файл, и из файла, и создать, и стереть(КомандаСистемы), и ИзСтрокиСРазделителями, и ВСтрокуСРазделителями, НайтиСледующийФайл, и многое другое. Проблем никаких...
#23
by death3d
А создать файл = Текст.Записать(ИмяПути + ИмяФайла). Работает на 100% Если файла нет, он его создает...
#24
by Ёжик в тумане
Найти на пустом месте проблему - тоже надо умудриться. У некоторых поразительный талант по этой части..
#25
by romix
Не понял - кого и к чему я привязываю. Исходники моих внешних компонент в открытом доступе лежат (интересно, кто еще так делает?). А компоненты автоматизации Windows трудно назвать нестандартным софтом. Проблема с текстовыми файлами все-таки есть. Вот в v7plus.dll даже добавили (специально для ёжиков) функции построчного чтения-записи текстовичков.
#27
by Ёжик в тумане
Ёжики без всяких проблем пользуются встроенными .ПолучитьСтроку(...) .ДобавитьСтроку(...)
#28
by romix
На больших файлах ничего не тормозит? А как насчет разобрать таким способом MLG, при том, что нужен только конец журнала (за текущую дату)?
#29
by romix
Короче, для ведения или чтения журналов, и переноса данных (а зачем еще нужны текстовички?) этот способ не подходит.
#31
by Ёжик в тумане
Ну твою налево в хреножопову мать! Текст.ПолучитьСтроку(Текст.КоличествоСтрок) - возвращает последнюю строку файла Текст.ПолучитьСтроку(Текст.КоличествоСтрок-1) - возвращает предпоследнюю строку файла и т.д.
#33
by romix
Щазз. Сначала 1с-ка тебе весь файл прочитает и в память (ОЗУ)положит. Только потом будет эти методы юзать.
#35
by Asmody
ну что вы паритесь? да, встроенный Текст закачивает весь файл в память. но если 2 гига оперативки - то это не страшно. на крайняк есть v7text
#41
by romix
Блин, сгенери большой текстовичок объектом Текст... И увидешь, много ли секунд проработает 1С, пока все не упадет...
#42
by Ёжик в тумане
Если бы так всё и было - всё бы вешалось моментально. Что-то такого не наблюдалось..
#45
by Ёжик в тумане
Я вообще-то подозреваю, откуда сложилось такое заблуждение. Да, 1С ПРИ ОТКРЫТИИ файлов резервирует для этого память. Но не держит её. Реально проблемы могут только при открытии файлов более 100 Мб.
#48
by Ёжик в тумане
Доказульки в студию! Физдеть о вреде 1С сколько угодно можно, только иногда на зеркало неча пинять...
#56
by pauls
Не знаю доказулька ли это... Но реальная проблема... Генерится большое кол-во элементов справочника за один присест. Несколько десятков тысяч. Это все делается в цикле с транзакциями . Т.е. открыть тразакцию записать 200 элементов, закрыть транзакцию, открыть новую еще 200 и т.д. В течение первой тысячи элементов происходит резкое снижение скорости записи. Размер базы весьма не велик, но память жрется + загрузка проца весьма большая... С алгоритмом все нормально транзакции открываются и закрываются, т.е. нет сваливание всего в одну, но ресурсы не высвобождаются...
#59
by pauls
Да улавливаю, но "Текст" - это фигня на самом деле, а вот на никто ничего вразумительного сказать не может...
#60
by Ёжик в тумане
Да тут куча причин может быть, начиная с того, что просто справочник растёт (т.е. запись 1-й тысячи элементов будет куда быстрее, чем запись 25-й тысячи), и заканчивая тем, что на 2-й тысяче справочник попадает в фрагментированную зону диска.
#61
by romix
Долго ждать - лучше такой пример (строчка=1 мег). В конце правда, 1С корректно пишет, что Out of memory и не падает.
#62
by Ёжик в тумане
+61 Можешь то же самое проделать, но не с созданием новых элементов, а с записью уже существующих. 100% - динамика затрат времени будет иной.
#64
by romix
Может, объект надо обнулять каждый раз? Т.е. СоздатьОбъект внутри цикла каждые 200 элементов.
#66
by romix
У меня все нормально было - я делал загрузку элементов из сторонней базы. Достаточно большой. Нелинейного падения производительности у меня не было.
#69
by Дурочка 1С
У тебя в справочнике либо длинное наименование либо индексируемое текстовое поле неограниченной длины. Вот она тебе и индексирует базу все медленнее и медленнее.
#71
by Ёжик в тумане
Ну, если у тебя элементом стиля является наличие мусора в модулях, то неудивительно, что у тебя такие проблемы с производительностью.
#73
by romix
Длинное наименование просто в N раз увеличивает объем перелопачиваемых данных. Нелинейного роста здесь нет. Строки неограниченной длины хранятся кусками по 80 символов. Ну, подумаешь, к каждому элементу прикрепится 1-2-3 таких кусочка. Тоже нелинейного роста вроде нету.
#74
by Ёжик в тумане
Это не доказательство, а форменное БСК. В этом куске даже нет попытки открыть файл!
#78
by pauls
Наименование длиной 100. Индексируемых полей нет... Ясно что 25000-ый элемент будет загружаться медленнее, но почему основное падение происходит на 1-вой тысяче? Потом скорость "выравнивается"...
#79
by romix
Сокращение не понял. Объект Текст не нуждается в файле для своего существования и пожирания ОЗУ.
#84
by Ёжик в тумане
А скажи-ка, знаток компиляции, отчего тогда на замерах производительности на заремаренные строки проценты уходят?
#91
by bazvan
Почитайте описание в7плюс ДЛЛ там для баранов написано. И в обработках 1С увидите что изменены подходы к чтению ТХТ файла И по этому Ехспорт Импорт ЕРТ не куа не работает так как ее под ДЛЛ не переписывали Запали уже неудачники которые орут о переполнении памяти Нах Пох Другое Подчеркните нужное
#92
by Ёжик в тумане
Ты нифига не написал. Кроме бесконечного цикла. Если это и в самом деле всё, что ты можешь, то иди-ка ты, в самом деле ИТС читать - всё больше пользы, чем пердеть впустую.
#95
by bazvan
В каком другом??? 7плюсь изменила способ чтения и записи. А ты купил ораньжевую ёлку?(с) Тот Если нет иди почитай свои сообщения умный ты наш
#98
by romix
Ну смоги ты напиши. Кстати, 1С у меня зависла после этого цикла. Снимал по Ctrl-Alt-Del.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Корректное создание документа Реализация (Розница) в ТИС
- 445 бух, как вести учет по нескольким кассам?
- Как из из файл-серверной 1с вызвать хранимую процедуру из внешней БД SQL
- Как пропустить итерацию цикла?
- Как не закрывать Excel при работе с ним из-под 1с v7
- Как из ТаблицыЗначений передать значения в таблицу документа.
- Как найти все подчиненные справочники
- Комплексная. ОСВ не включает счёт 004
- УПП: Как оприходовать на склад выпущенную продукцию??
- Загрузка данных из ЗиК в 1С Предприятие
- Конвертировать ert в dll
- DB в DBF
- ЗиК248 Не считает компенсацию за неиспользованный отпуск
- Загрузка в Excel из mxl или xls - почему так?
- Таблица - есть какие-нибудь методы удаления областей программно?
- Инталев:Корпоративные финансы
- Как убрать пароль юзера в 8-ке?
- Ответы к комплекту вопросов серт. экзамена по 7.7
- Как восстановить разрушенную базу???!!!
- Оптимальное по быстродействию полное соединение двух ТЗ для 7.7