|
Поиск в текстовом файле |
☑ |
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");
|
|
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) но, ведь реально ЧтениеТекста преедназначено для чтения длинных файлов.
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший