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