|
v7: как текстовый файл ~2мб быстро загрузить в многострочную строку | ☑ | ||
---|---|---|---|---|
0
perkos
06.12.12
✎
12:17
|
работать с этим файлом оч медленно....
|
|||
1
КонецЦикла
06.12.12
✎
12:17
|
Запросом?
|
|||
2
Mikeware
06.12.12
✎
12:21
|
собрался парсить mlg?
|
|||
3
perkos
06.12.12
✎
12:22
|
(1) как запросом?
(2) да не, просто файл дают такой надо по нему отчет делать |
|||
4
1Сергей
06.12.12
✎
12:22
|
копипасте, не?
|
|||
5
Ёпрст
06.12.12
✎
12:23
|
через fso
|
|||
6
Ёпрст
06.12.12
✎
12:23
|
можно и быстрее
|
|||
7
Balabass
06.12.12
✎
12:24
|
читай построково и в ТЗ засовывай через ФСО.
|
|||
8
perkos
06.12.12
✎
12:26
|
ткст = СоздатьОбъект("Текст");
ткст.Открыть(ПутьКФайлу); колСтрок = ткст.КоличествоСтрок(); Файл=""; Для ы=1 По колСтрок Цикл Файл = Файл + ткст.ПолучитьСтроку(ы)+РазделительСтрок; Состояние("Загрузка файла в память "+Окр(ы/колСтрок,2)*100+"%"); КонецЦикла; вот это выполняется пару минут даже на оч быстрой тачке (5) плохо гуглится, есть че поподробнее? |
|||
9
Mikeware
06.12.12
✎
12:26
|
(3) если по нему отчет - наверное, csv?
дык для csv есть более другие методы.. |
|||
10
ДенисЧ
06.12.12
✎
12:28
|
попробуй ЧтениеТекста...
|
|||
11
perkos
06.12.12
✎
12:36
|
(10) чье это? я по 1с7
|
|||
12
ДенисЧ
06.12.12
✎
12:36
|
(11) ой...
тады (5) |
|||
13
perkos
06.12.12
✎
12:37
|
(9) csv? файл текстовый просто, не форматный, обработчик я для него сделал просто медленно очень...
чейто ФСО? |
|||
14
ДенисЧ
06.12.12
✎
12:40
|
||||
15
perkos
06.12.12
✎
12:42
|
ы=1;
FSO=СоздатьОбъект("Scripting.FileSystemObject"); File=FSO.GetFile(ПутьКФайлу); TextStream=File.OpenAsTextStream(1); Пока TextStream.AtEndOfStream=0 Цикл //Стр_ = TextStream.ReadLine(); Файл = Файл + СокрЛП(TextStream.ReadLine())+РазделительСтрок; Состояние("Загрузка файла в память "+Окр(ы/колСтрок,2)*100+"%"); ы=ы+1; КонецЦикла; TextStream.Close(); так вот попробовал тоже тягомотно |
|||
16
eRik
06.12.12
✎
12:43
|
в V7plus есть свои методы для работы с текстовиками.
тож медленно? |
|||
17
Дык ё
06.12.12
✎
12:50
|
||||
18
FN
06.12.12
✎
21:04
|
FSO=СоздатьОбъект("Scripting.FileSystemObject");
File=FSO.GetFile(ПутьКФайлу); TextStream=File.OpenAsTextStream(1); Файл =TextStream.Read(File.Size); TextStream.Close(); Так вообще должно быть почти мгновенно. Ищи тормоза в другом месте |
|||
19
oslokot
06.12.12
✎
21:54
|
(0)
не решение твоей траблы, но я бы убрал из цикла Состояние("Загрузка файла в память "+Окр(ы/колСтрок,2)*100+"%"); ибо замедляет |
|||
20
Fragster
гуру
06.12.12
✎
22:02
|
через ADO можно запрос делать, если это текст с разделителями или с полями фиксированной длины
|
|||
21
Torquader
07.12.12
✎
00:52
|
Вопрос - а в чём смысл загрузки сразу всего файла в память - не проще ли его читать построчно ?
P.S. я при помощи Scripting.FileSystemObject образы дисков читал - и ничего - работало. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |