Есть ли какие либо ограничения у объекта "Текст" #512638


#0 by NcSteel
Записывал таблицу значений в текстовый файл . открываю так: До сегодняшнего дня (2 месяца) работало нормально , но теперь ТаблицаИД1 не равна ТаблицеЗначений. Смотрю в Notepad++ вроде все нормуль. Но файл большой 2,6 мег.
#1 by ДенисЧ
65К ограничение...
#2 by NcSteel
Блин ! Возможно там и есть 65 К. Спасибо. Буду копать.
#3 by ДенисЧ
64, пардон...
#4 by NcSteel
Как я понимаю это ограничение самой Тз или преобразования ? Просто работает так : Раз файл записался значит Тз позволила создать строки.
#5 by ДенисЧ
(*4) насколько я понимаю, это ограничения объекта Текст
#6 by NcSteel
Хм . Следовательно если найти способ получить строку не через "Текст" то будет все корректно работать ? Есть такой способ ?
#7 by NcSteel
Есть необходимость хранить Таблицу значений во внешнем файле и подгружать ее. Думаю переделать под DBF. Или можно получить строку как то еще ?
#8 by andrewks
в v7plus есть объект V7TextFile, но на пред.объем не тестил
#9 by МихаилМ
#10 by Эльниньо
Изврат какой-то. Почему не как в ?
#11 by NcSteel
Пишет ошибку при ПрочитатьСтроку мануал на гуглил , но он не помог )
#12 by NcSteel
Ибо так написал партнер , и вот приходится дорабатывать за ними.
#13 by NcSteel
Сейчас речь об выходе из текущей ситуации , а не как нужно было сделать изночально.
#14 by andrewks
какую ошибку пишет-то?
#15 by andrewks
+ ой пардон, я ваще не туда смотрю... я тут хитромудрыми тестами параллельно занимаюсь
#16 by NcSteel
Судя по мануалу ты не прав. Но проверив и так получил: Но строка получилась не вся, а только первые 28 символов. Получается этот объект разбил сам строку . Вот паганец )
#17 by andrewks
а текст у тебя чистый или со всякими спецсимволами?
#18 by NcSteel
Текст равен ТаблицаЗначений в Строку.
#19 by Torquader
Есть объект Scripting.FileSystemObject и его производное TextStream Единственное, что читать надо по частям - объект на размерах больше 64 Кб не всегда корректно читает командой ReadAll, а вот Read(Размер) работает прекрасно и не затыкается на символах с кодом 0 (я на нём читалку образа Flash дисков писал).
#20 by NcSteel
СтрокаИД = "{"U","0","0","0","0","0",""}" Результат этого кода: Если поменять Номерстроки на 1 и буфер так же на 1 то результат тот же.
#21 by NcSteel
А проще нет ? ))))
#22 by NcSteel
+ Цикл отрабатывает только один раз.
#23 by Torquader
+ Кроме того, у объекта текст ограничение не на сам текст, а на размер (то есть максимальную длину строки), так как файлы 2-3 мегабайта через "Текст" пишутся и читаются прекрасно, если в них нет слишком длинных строк. Также следует понимать, что если в таблице значений где-то есть перевод строки, то команда Текст.ПолучитьСтроку даст только часть таблицы, а надо будет сделать "склеивание", то есть не забыть прочитать и ПолучитьСтроку и так далее, то есть For i=1 To Текст.КоличествоСтрокDo If i>1 Then s=s+LineBreak;EndIf;
#24 by andrewks
последний релиз v7plus - 11 ПрочитатьСтроку(<?>); Синтаксис ПрочитатьСтроку(<Строка>) Назначение Метод ПрочитатьСтроку считывает очередную строку и возвращает ее в параметр <Строка> без разделителя строк. Если в файле символ EndOfFile, метод ПрочитатьСтроку  обрабатывать его также как объект Текст. Возвращаемое значение: 1 - строка считана;  0 - больше строк нет Метод доступен для объекта типа V7TextFile
#25 by NcSteel
Но выдает ошибку если читать  так.
#26 by andrewks
кстати да, сам пишу ч/з Текст файлецы до 10 метров.
#27 by andrewks
входной файл кстати откуда льется? может там с символами перевода строк замута?
#28 by Torquader
У тебя просто несколько строк в файле - вот и не читается, если спрашиваешь только первую. P.S. я объект текст не люблю за то, что он считывает весь файл в память (в отличие от TextStream, который читает построчно).
#29 by Torquader
Просто если в строке таблицы значений есть перевод строки, то он будет и в результирующем файле, а потом ПолучитьСтроку вернёт всё, что написано до него.
#30 by NcSteel
В файле только одна строка .
#31 by andrewks
#32 by NcSteel
Хм оказывается у меня v7plus версии 9 , сейчас попробую
#33 by andrewks
опаньки! одна строка на 2,6 метра? думаю здесь версией v7plus не решить...
#34 by Torquader
А ты туда заглядывал ? Если добавить в текст строку так: Текст.ДобавитьСтроку(Начало+LineBreak+Конец); а потом всё это сохранить, то в файле будет уже две строки.
#35 by andrewks
если это у тебя файл обмена, и ты пишешь его сам, советую придумать некую структуру/формат выгрузки, и писать строчками/блоками, или - xml
#35 by Torquader
Конечно. А вот так должно прочитаться: Fso=CreateObject("Scripting.FileSystemObject"); s=""; While File.atEndOfStream=0 Do Только ммееддллеенннноо ...
#37 by NcSteel
Да заглядывал Ноутпадом++
#38 by Torquader
Что живёт в таблице значений ? Не проще ли каждую строку этой таблицы писать в строку файла - а потом построчно читать ?
#39 by andrewks
во-во, и я о том же
#40 by Torquader
Также ещё полезно для начала проверить для своей чудо-таблицы, что Уверен, что ЧудоТаблица и НоваяЧудоТаблица совпадают ?
#41 by NcSteel
Блин я ее удалил (((( АААА. Пойду головой о стену стукнусь.
#42 by NcSteel
Внедрена Опитумум на ТиС77 , для того что бы данные точно записывались уникальные создается таблица с внутренним идентификатором.
#43 by Torquader
Таки ты пишешь ссылки на элементы, а не проще ли в таблицу писать внутренние ID этих элементов, а тогда будет сразу понятно, как это можно писать в строку (то есть сразу в объект текст).
#44 by NcSteel
В 7.7 есть внутренний Гуид ?
#45 by Torquader
Есть, например ValueToStringInternal - это внутреннее представление объекта - то есть можно, конечно, оттуда достать ID, но проще вместо объекта в строку писать его. То есть у тебя будет файл, где в каждой строке будет записан созданный тобой ID, разделитель (например TabSymbol) и внутреннее представление объекта. При чтении такого файла ты быстро и просто восстановишь свою таблицу значений, и сможешь использовать поиск по элементу, если нужен поиск - если нет, то можно смело читать файл.
#46 by NcSteel
Задумываюсь что надо перейти на dbf и для поиск запросом юзать.
#47 by NcSteel
ValueToStringInternal как понимаю его легко конвертировать в объект ?
#48 by andrewks
ЗначениеИзСтрокиВнутр
#49 by NcSteel
Да я воткнул. )
#50 by Torquader
Просто для тебя проще не всю таблицу сразу конвертить, а по строкам - конечно, дольше, но при больших объёмах есть экономия памяти (мы длинную строку не создаём)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С