Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 06.04.2012
Сообщений: 27
1
.NET 4.x

Прочесть и обработать текстовый файл "log.txt" в котором несколько миллионов строк

02.07.2014, 22:58. Показов 2730. Ответов 30
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, уважаемые форумчане!
Необходимо прочесть и обработать текстовый файл "log.txt" в котором несколько миллионов строк.
Как осуществить все с максимальной скоростью? (Пробовал с обычным текстом - все нормально, а как c "log.txt" - так начинает виснуть)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.07.2014, 22:58
Ответы с готовыми решениями:

Создать текстовый файл in.txt, куда записать несколько строк. Найти номер самой короткой строки
1.Создать текстовый файл in.txt, куда записать несколько строк. Найти номер самой короткой строки. ...

Надо записать в текстовый файл log.txt строку
Добрый день! Делаю на простом аспе. У меня на локале все работает, на серваке не все. Т.е. ...

Дан текстовый файл A.TXT. Сформировать новый файл из строк файла A.TXT, содержащих слово RUN
Дан текстовый файл A.TXT. Сформировать новый файл из строк файла A.TXT, содержащих слово RUN....

дан текстовый файл input.txt, найти количество непустых строк в нем и записать в файл output.txt
помогите! дан текстовый файл input.txt, найти количество непустых строк в нем и записать в файл...

30
290 / 271 / 107
Регистрация: 10.06.2011
Сообщений: 696
03.07.2014, 15:44 2
Как у вас обрабатывается текст? Код в студию.
0
1245 / 1055 / 293
Регистрация: 07.03.2012
Сообщений: 3,245
03.07.2014, 16:17 3
что значит "обработать"? вам нужно целиком весь файл хранить в памяти? я так не думаю. Читайте построчно через StreamReader
0
0 / 0 / 0
Регистрация: 06.04.2012
Сообщений: 27
03.07.2014, 18:53  [ТС] 4
То есть нужно вывести строки, в которых встречаются слова из textbox'а. Пробовал через StreamReader - безбожно виснет...


VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
Imports.System.IO
Public file As String = "log.txt"
Dim FileStream As StreamReader = New StreamReader(file)
dim st as string
dim i as integer
do
st=filestream.readline
i=instr(1,st,textbox1.text)
if i=1 then
RichTextBox1.Text += st + vbCrLf
end if
loop until st is nothing
FileStream.close
0
1302 / 508 / 63
Регистрация: 09.08.2012
Сообщений: 2,056
03.07.2014, 19:12 5
gefestbrest, раз столько много строк, я бы обрабатывал, наверно, через access, управляя им из приложения на VB.net. Как обсуждалось ранее на форуме - любая база данных быстрее обрабатывает большие объемы информации чем любой ЯП
0
0 / 0 / 0
Регистрация: 06.04.2012
Сообщений: 27
03.07.2014, 19:14  [ТС] 6
Я тоже так подумал, но нужно считывать только с текстового файла...
0
1302 / 508 / 63
Регистрация: 09.08.2012
Сообщений: 2,056
03.07.2014, 19:16 7
gefestbrest, из аксеса подтягивать текстовый файл, это проще паренной репы А из VB управлять базой
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
03.07.2014, 19:24 8
emenem97, у ТС скорее всего, такая ситуация, что он не волен менять формат данных.
Вот ему дан лог-файл, который создается может быть вообще не в его программе, а ему его надо спарсить.

Т.е. тот случай, когда выбирать не из чего
0
0 / 0 / 0
Регистрация: 06.04.2012
Сообщений: 27
03.07.2014, 19:24  [ТС] 9
А можно чуть поподробнее?
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
03.07.2014, 19:27 10
gefestbrest, миллион строк - понятие растяжимое.
Строки имеют свою длину и могут быть в 3 символа, а могут быть огромными.

Вы лучше скажите, сколько весит в мегабайтах такой лог, может, кто чего и предложит
0
0 / 0 / 0
Регистрация: 06.04.2012
Сообщений: 27
03.07.2014, 19:29  [ТС] 11
Цитата Сообщение от Памирыч Посмотреть сообщение
gefestbrest, миллион строк - понятие растяжимое.
Строки имеют свою длину и могут быть в 3 символа, а могут быть огромными.

Вы лучше скажите, сколько весит в мегабайтах такой лог, может, кто чего и предложит
Чуть свыше 70 метров
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
03.07.2014, 19:34 12
Цитата Сообщение от gefestbrest Посмотреть сообщение
Чуть свыше 70 метров
Да, это не булки печь...

А что Вы из этого файла хотите получить?

Пример куска лога и то что надо вытянуть - приведите.

Ну и если там не сложно, то и сам лог бы, в архиве
0
0 / 0 / 0
Регистрация: 06.04.2012
Сообщений: 27
03.07.2014, 19:44  [ТС] 13
Цитата Сообщение от Памирыч Посмотреть сообщение
Да, это не булки печь...

А что Вы из этого файла хотите получить?

Пример куска лога и то что надо вытянуть - приведите.

Ну и если там не сложно, то и сам лог бы, в архиве
Имя определенного файла, пробел, дата его вызова. И нужно по конкретным датам или именам выводить необходимые списки
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
03.07.2014, 19:48 14
gefestbrest, получается всего две "ячейки" данных на строку.
Хотелось бы визуально увидеть.
И кстати, что там насчет файла? Есть возможность прикрепить в виде архива?
0
0 / 0 / 0
Регистрация: 06.04.2012
Сообщений: 27
03.07.2014, 20:01  [ТС] 15
Цитата Сообщение от Памирыч Посмотреть сообщение
gefestbrest, получается всего две "ячейки" данных на строку.
Хотелось бы визуально увидеть.
И кстати, что там насчет файла? Есть возможность прикрепить в виде архива?
Извиняюсь, сижу через 3g с лимитом, перекинуть не смогу..
То есть есть списки типа:

file_1 25.01.2014 14:15:33
file_2 25.01.2014 14:16:11
...
file_n 25.01.2014 23:23:23

Я ввожу например "file_2" ну или "file" и получаю даты вызова всех файлов, чьи имена состоят из этих символов..
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
03.07.2014, 20:10 16
Было подобное
Принцип такой:
VB.NET
1
2
3
4
5
6
7
8
        Dim SB As New System.Text.StringBuilder
        Dim Lines() As String = IO.File.ReadAllLines("C:\Log-Log-da i sam bud ne ploh.txt", System.Text.Encoding.Default)
        For I As Integer = 0 To Lines.Length - 1
            If Lines(I).Split()(0) = "file_5" Then
                SB.AppendLine(Lines(I))
            End If
        Next
        MsgBox(SB.ToString)
Насчет скорости не знаю, больших файлов с такой структурой нет под рукой.
2
0 / 0 / 0
Регистрация: 06.04.2012
Сообщений: 27
03.07.2014, 20:26  [ТС] 17
Цитата Сообщение от Памирыч Посмотреть сообщение
Было подобное
Принцип такой:
VB.NET
1
2
3
4
5
6
7
8
        Dim SB As New System.Text.StringBuilder
        Dim Lines() As String = IO.File.ReadAllLines("C:\Log-Log-da i sam bud ne ploh.txt", System.Text.Encoding.Default)
        For I As Integer = 0 To Lines.Length - 1
            If Lines(I).Split()(0) = "file_5" Then
                SB.AppendLine(Lines(I))
            End If
        Next
        MsgBox(SB.ToString)
Насчет скорости не знаю, больших файлов с такой структурой нет под рукой.
Большое спасибо, все работает, хотя и медленно..
А нельзя ли весь этот процесс каким-нибудь способом убыстрить? Я слышал про memory mapped files, но не в курсе его реализации
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
03.07.2014, 20:29 18
Цитата Сообщение от gefestbrest Посмотреть сообщение
Я слышал про memory mapped files, но не в курсе его реализации
Аналогично.
Теперь, когда Вы показали данные, а я привел код, думаю, могут подключиться специалисты и ударить по файлу тяжелой артиллерией
0
0 / 0 / 0
Регистрация: 06.04.2012
Сообщений: 27
03.07.2014, 20:35  [ТС] 19
Хорошо сказано)). Будем ждать матерых ай-тишников!
0
1302 / 508 / 63
Регистрация: 09.08.2012
Сообщений: 2,056
03.07.2014, 20:44 20
gefestbrest, делайте через БД, как говорю, скорость значительно быстрее. Я частенько на работе обрабатываю файлы по 500-600 Мб текста и полей около 15, со сложными запросами за пару минут справляюсь.
1
03.07.2014, 20:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.07.2014, 20:44
Помогаю со студенческими работами здесь

Как при помощи FSO можно обработать такой (см.внизу)текстовый файл(1.txt) и вывести её на печать !?
Здравствуйте! Вопрос такой как при помощи FSO можно обработать такой (см.внизу)текстовый...

Имеется текстовый файл input.txt содержащий строки, переписать в текстовый файл filtered.txt каждое второе слово
Имеется текстовый файл input.txt содержащий строки, переписать в текстовый файл filtered.txt каждое...

Дан текстовый файл input.txt, в котором хранятся целые числа
Помогите решить задачу Дан текстовый файл input.txt, в котором хранятся целые числа. Создать...

Две текстовый файл input.txt, в котором хранятся целые числа
Две текстовый файл input.txt, в котором хранятся целые числа. Создать упорядоченный по возрастанию...

Задача. Дан текстовый файл input.txt, в котором хранятся целые числа
Дан текстовый файл input.txt, в котором хранятся целые числа. Создать упорядоченный по возрастанию...

Построчно прочитать текстовый файл input.txt, отредактировать и записать в текстовый файл output.txt
Нужно написать программу, которая построчно читает текстовый файл input.txt. Редактирует эти строки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru