Имя: Пароль:
1C
 
Поиск в текстовом файле
,
0 Aleksey1989
 
27.09.15
20:16
Добрый вечер. Мне необходимо в текстовом файле, который имеет более 1000 строк, найти информацию по подстроке поиска. Пока использую такой код:

Текст = Новый ТекстовыйДокумент;
Текст.Прочитать("C:\test.txt");

Для НомерСтроки = 1 По Текст.КоличествоСтрок() Цикл
Стр = Текст.ПолучитьСтроку(НомерСтроки);
СтрокаПоискаНайдена = СтрНайти(Стр, СтрокаПоиска);
КонецЦикла;

Но этот код очень медленный, т.к. уж очень много строк в текстовом файле находится. Есть ли более быстрый способ программного поиска, м.б. через api блокнота?
1 mehfk
 
27.09.15
20:21
>>, м.б. через api блокнота
o_O
2 Дарлок
 
27.09.15
20:22
(0) загони весь файл в память ( в ту же ТЗ, например) и ищи там
3 Aleksey1989
 
27.09.15
20:24
(2) Это быстрее будет? Я же и так сначала создаю переменную типа "ТекстовыйДокумент", потом загружаю в эту переменную данные из файла. Разве ТЗ будет быстрее работать?
4 HawkEye
 
27.09.15
20:25
(2) так загонять то через цикл придется, тем более в тз нет аналога СтрНайти
5 HawkEye
 
27.09.15
20:26
(3) судя по коду, 7.7?
может через эксель попробовать?
6 Дарлок
 
27.09.15
20:30
будет быстрее
7 Aleksey1989
 
27.09.15
20:34
(5) Нет, 8-ка.
8 ДенисЧ
 
27.09.15
20:36
(5) "Текст = Новый ТекстовыйДокумент; "

Да, это самая кондовая 7ка... Ты абсолютно прав.
9 HawkEye
 
27.09.15
20:48
(7) понял уже по (3)
(8) глазастый, возьми себе с полки пирожок )
10 H A D G E H O G s
 
27.09.15
20:58
Используйте ЧтениеТекста
11 RomanYS
 
27.09.15
21:11
(10) +1
на порядок быстрее чем текстовыйдокумент
12 EvgeniuXP
 
27.09.15
21:51
напиши на питоне или на С#, вызови, получи результат в 1С.
13 SiAl-chel
 
28.09.15
07:28
(0) Открой для себя регулярные выражения.
RegExp = Новый("VBScript.RegExp");
http://www.script-coding.com/WSH/RegExp.html
14 jurassic
 
28.09.15
07:32
(0) это зачем это?
15 ЧеловекДуши
 
28.09.15
07:49
(0) Странно, "ТекстовыйДокумент", уже считывает весь файл в память. Какой смысл искать построчно? :)

И да, если файл превысит размер 4-ех гигобайтов, то 1С может и "упасть" :)
16 VladZ
 
28.09.15
08:02
(0) Расскажи еще про задачу. Ну нашел ты инфу, дальше что с ней делаешь?
17 hhhh
 
28.09.15
08:08
(15) но, ведь реально ЧтениеТекста преедназначено для чтения длинных файлов.