Массив строк файла загружает память - Visual Basic .NET
Формулировка задачи:
Мне нужно узнать количество строк в текстовом документе и я это делаю так:
Других вариантов в интернете не нашёл. Но вот проблема в том, что файлик этот весит 87Мб, некоторые бывают и больше.
И после вывода информации у меня программа увеличивает объём занимаемой памяти примерно на 87-90Мб. Пробовал через:
но ничего не помогает, правда в массиве одни Nothing после, на 67к+ строк
и это тоже не помогает, хотя после этого действия массив пустой польностью
Листинг программы
- Dim mString() = IO.File.ReadAllLines("G:\project\Txt\CombineTable.txt", System.Text.Encoding.Default) ' загоняем в массив строки
- MsgBox(mString.Length)
Листинг программы
- Array.Clear(mString, 0, mString.Length)
Листинг программы
- Erase mString
Решение задачи: «Массив строк файла загружает память»
textual
Листинг программы
- Public Function LinesCountB(ByVal fName As String) As Integer
- Try
- Dim maxBytes As Integer
- maxBytes = 4096
- Dim c, bytesRead As Integer
- Dim buffer(maxBytes) As Byte
- c = 0
- Using bReader As New IO.BinaryReader(IO.File.OpenRead(fName))
- Do
- bytesRead = bReader.Read(buffer, 0, maxBytes)
- For i As Integer = 0 To bytesRead
- If buffer(i) = 13 Then c += 1
- Next
- Loop While bytesRead = maxBytes
- End Using
- Return c
- Catch eX As Exception
- Console.WriteLine("The file could not be read:")
- Console.WriteLine(eX.Message)
- Return -1
- End Try
- End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д