|
85 / 1 / 0
Регистрация: 22.02.2016
Сообщений: 103
|
|
Необходимо проанализировать большие текстовые файлы25.01.2021, 11:51. Показов 1278. Ответов 7
Метки нет (Все метки)
Добрый день.
Подскажите, как лучше реализовать задачу, по анализу всех файлов в папке и подпапках с регулярными выражениями. Насколько я понял есть 3 способа: 1. Воспользоваться LINQ, но в нем нельзя использовать регулярные выражения. 2. Использовать regex, а потом match.success построчно. 3. Использовать contains. т.к. файлы могут быть большого размера, доходя до 2 Гб или больше, то необходимо 1. использовать using или AsParallel в linq. но встает вопрос в том, что если производить вывод найденных ошибок, то зависает основной поток, хоть пробовал с using. Хочу сделать: 1. Найти все файлы в каталоге и подкаталогах по маске (может быть .log и .txt и тд). 2. Проанализировать все файлы через регулярные выражения, которые задаются во время работы программы (то есть не compiler). 3. если в файле найдена ошибка, есть совпадение, то 1. скопировать исходный файл, где ошибка и 2. в отдельный файл собрать все ошибки. 4. опциально выводить ошибки в реальном времени, по мере нахождения. Для этого не должен блокироваться основной поток. Пробовал using, но есть зависание textbox, долго разбирается и полагаю это не многопоточный анализ или не паралельное. Есть идеи, как реализовать быстрый анализ больших текстовых файлов? P.S пока реализовываю на WinForm, но думаю и из консольного примера переведу на form
0
|
|
| 25.01.2021, 11:51 | |
|
Ответы с готовыми решениями:
7
Чем открывать большие текстовые файлы? Определить строки этого файла, содержащие максимальную по длине подстроку, состоящую из одинаковых символов Текстовые файлы, посчитать матрицы и вывести в текстовые файлы |
|
14314 / 9399 / 1355
Регистрация: 21.01.2016
Сообщений: 35,435
|
||
| 25.01.2021, 12:01 | ||
|
Вообще, не видя кода не можно дать дельный совет. Вполне может статься, что чтение в один поток будет достаточно быстрым. Ну и чтобы UI не зависал нужно тяжёлые операции производить в отдельном потоке.
0
|
||
|
85 / 1 / 0
Регистрация: 22.02.2016
Сообщений: 103
|
|||||||
| 25.01.2021, 13:54 [ТС] | |||||||
Следовательно тут я не реализовал запись в файл, проверку на ошибки. Застрял на нормальном чтении файлов.
0
|
|||||||
|
964 / 582 / 268
Регистрация: 20.12.2016
Сообщений: 1,506
|
||
| 25.01.2021, 14:15 | ||
|
0
|
||
|
14314 / 9399 / 1355
Регистрация: 21.01.2016
Сообщений: 35,435
|
||
| 25.01.2021, 15:21 | ||
|
По всему остальному: можно попробовать распараллелить процесс поиска, но самое тяжелое тут именно процесс чтения с накопителя. Не факт, что распараллеливание этого процесса даст существенный прирост производительности.
0
|
||
|
619 / 399 / 187
Регистрация: 28.11.2019
Сообщений: 867
|
||||||||
| 25.01.2021, 16:25 | ||||||||
using System;, или как директива с псевдонимом, например using My = System.Console; и потом можно написать My.WriteLine("hello world");. Оператор using используется для правильного использования объектов, реализующих IDisposable. То есть вместо StreamReader reader = new StreamReader и потом reader.Close() вы оборачиваете ридер в юзинг. Для "независания основного потока" используйте async/await и Invoke для передачи данных в основной поток, например в текстбокс.По поводу общего быстродействия - регулярки намного тяжелее выполняются, если есть возможность обойтись без них, то лучше без них, особенно на таком огромном количестве данных. Либо почитайте про кэширование регулярок https://docs.microsoft.com/ru-... xpressions Можно подготовить какие-то определенные регулярки и скомпилировать их в сборку, типа:
0
|
||||||||
|
14314 / 9399 / 1355
Регистрация: 21.01.2016
Сообщений: 35,435
|
||
| 25.01.2021, 16:29 | ||
|
0
|
||
|
619 / 399 / 187
Регистрация: 28.11.2019
Сообщений: 867
|
||
| 25.01.2021, 16:32 | ||
|
0
|
||
| 25.01.2021, 16:32 | |
|
Помогаю со студенческими работами здесь
8
Файлы. Как просматривать большие файлы полностью и в любую сторону Почему не отправляются файлы docx, txt и прочие текстовые файлы? Текстовые файлы. Создать новый файл, объединив исходные файлы Как проанализировать файлы-отчёты со сведениями об ошибках? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|