Имя: Пароль:
1C
 
Чтение больших текстовых файлов
0 abjurer
 
20.08.08
11:55
Собственно есть у кого мысль как прочитать быстро большой текстовый файл? Файл около 400 метров. Нужно имея подстроку поиска найти строку с максимальным номером строки, содержащую эту подстроку, и вывести ее в табличный документ 1С (или в окно сообщений - не важно).
Пробовал объект "Текст" - Out of memory. Последовательное чтение через AddIn.V7TextFile и Scripting.FileSystemObject - дело долгое (по прикидкам весь файл они пройдут за час. Очень хочется побыстрее. Сие возможно?
1 jbond
 
20.08.08
12:00
2 jbond
 
20.08.08
12:02
3 abjurer
 
20.08.08
12:23
(1) я же писал, что последовательное чтение через AddIn.V7TextFile и Scripting.FileSystemObject медленно

(2) и как запустить сие чудо? скачал. третью dll уже хочет и жалится на неправильную установку.
4 abjurer
 
20.08.08
12:31
все. расправился с грепом. спасибо :)
5 Андрюха
 
20.08.08
12:36
Как вариант, можно по ОЛЕ открыть файл в Word и от туда его лохматить
6 Armando
 
20.08.08
12:43
Если файл имеет структуру, то почему бы его не конвертить в dbf, например, или xls. И долбать запросом.
7 jbond
 
20.08.08
12:45
(6) - тогда уж лучше к текствым файлам CSV/TSV
8 jbond
 
20.08.08
12:46
(3) - где бы нормальный фронтенд достать к нему - вот это посерьезнее вопросик
9 Armando
 
20.08.08
12:47
(7) да пох во что. все равно быстрее должно быть.
10 big
 
20.08.08
12:56
(0) через FSO файл 4Гб 2лохматится" за 40 минут. но на ВБА, 1С не тянет.
(5) Ворд "приседает" от 20 Мб, а тут 400 :)
(6) конвертация займет времени даже больше.
11 smaharbA
 
20.08.08
12:58
findstr - парсю логи по 17 гиг и не жужу...
а вообщето есть adodb
12 romix
 
модератор
20.08.08
14:40
13 romix
 
модератор
20.08.08
14:44
В 1С возможно использование регулярных выражений для разбора строк:

   RegExp = CreateObject("VBScript.RegExp");
   RegExp.IgnoreCase = True;
   RegExp.Global = False;
   RegExp.Pattern = "<hr>";
   Matches=RegExp.Execute(стр);
   Если Matches.Count()>0 Тогда
         Сообщить(""+Matches.Count()+"---"+стр);
   КонецЕсли;
14 romix
 
модератор
20.08.08
14:59
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.