Массив строк файла загружает память - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Мне нужно узнать количество строк в текстовом документе и я это делаю так:
Листинг программы
  1. Dim mString() = IO.File.ReadAllLines("G:\project\Txt\CombineTable.txt", System.Text.Encoding.Default) ' загоняем в массив строки
  2. MsgBox(mString.Length)
Других вариантов в интернете не нашёл. Но вот проблема в том, что файлик этот весит 87Мб, некоторые бывают и больше. И после вывода информации у меня программа увеличивает объём занимаемой памяти примерно на 87-90Мб. Пробовал через:
Листинг программы
  1. Array.Clear(mString, 0, mString.Length)
но ничего не помогает, правда в массиве одни Nothing после, на 67к+ строк
Листинг программы
  1. Erase mString
и это тоже не помогает, хотя после этого действия массив пустой польностью

Решение задачи: «Массив строк файла загружает память»

textual
Листинг программы
  1.     Public Function LinesCountB(ByVal fName As String) As Integer
  2.         Try
  3.             Dim maxBytes As Integer
  4.             maxBytes = 4096
  5.             Dim c, bytesRead As Integer
  6.             Dim buffer(maxBytes) As Byte
  7.             c = 0
  8.  
  9.             Using bReader As New IO.BinaryReader(IO.File.OpenRead(fName))
  10.                 Do
  11.                     bytesRead = bReader.Read(buffer, 0, maxBytes)
  12.                     For i As Integer = 0 To bytesRead
  13.                         If buffer(i) = 13 Then c += 1
  14.                     Next
  15.                 Loop While bytesRead = maxBytes
  16.             End Using
  17.             Return c
  18.         Catch eX As Exception
  19.             Console.WriteLine("The file could not be read:")
  20.             Console.WriteLine(eX.Message)
  21.             Return -1
  22.         End Try
  23.     End Function

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы