Подсчет каждой строки в текстовом файле

Так что я немного застрял с этим. По сути, у меня есть текстовый файл в каталоге, и в этом текстовом файле я добавил разный текст в каждую строку. Я пытаюсь использовать это, чтобы подсчитать, сколько строк в этом текстовом файле. Я использую IsolatedStorageFile для этого, и вот как я к нему обращаюсь.

Пока у меня есть это, но это не работает:

Using isoComments As IsolatedStorageFileStream = New IsolatedStorageFileStream("textfile1.txt", FileMode.Open, isoStore)
        Using readerComments As StreamReader = New StreamReader(isoComments)
            For Each line In readerComments.ReadLine
                MessageBox.Show(line.ToString.Count)
            Next
        End Using
End Using

Результатом является не количество строк, а количество символов в каждой строке. Это не то, что я хочу, мне нужно количество строк в этом конкретном текстовом файле. Кто-нибудь может мне помочь с этим.


person Zer0    schedule 14.07.2014    source источник
comment
line.ToString возвращает текущую строку строки, поэтому при использовании этого line.ToString.Count вы получаете длину этой строки. Так что в основном вам просто нужно посчитать line . поработайте с этим. попробуйте удалить окно сообщения внутри цикла   -  person bumbumpaw    schedule 14.07.2014


Ответы (2)


Что-то вроде этого:

Dim iLineCount As Integer
iLineCount = 0

Using isoComments As IsolatedStorageFileStream = 
New IsolatedStorageFileStream("textfile1.txt", FileMode.Open, isoStore)
    Using readerComments As StreamReader = New StreamReader(isoComments)
        For Each line In readerComments.ReadLine
            iLineCount=iLineCount+1
        Next
        MessageBox.Show(iLineCount)
    End Using
End Using
person Nick.McDermaid    schedule 14.07.2014
comment
похоже, он подсчитал количество текста в первой строке, а не во всех строках. - person Zer0; 14.07.2014
comment
Нет, вы подсчитали количество текста для каждой строки, а не только для первой строки. - person Nick.McDermaid; 14.07.2014
comment
Кажется, что не может получить результат. В моем текстовом файле это выглядит так: 8F2689723C3745 A4BBB8892DF843 C2199855351740 1D1EDF3D29B14E Каждый из них находится в разных строках, поскольку в нем 14 символов, он покажет 14. - person Zer0; 14.07.2014
comment
Можете ли вы опубликовать пример текстового файла в исходном вопросе с форматированием? «Строка» на самом деле просто символ возврата каретки. Если в вашем текстовом файле 14 символов возврата каретки, то может быть возвращено 14. - person Nick.McDermaid; 14.07.2014
comment
Я решил удалить старый метод и добавить новый, и он отлично работает. Извините за позднее уведомление, я обновлю свой ответ, когда у меня будет время. Хотя спасибо за помощь :) - person Zer0; 14.07.2014

Так мне удалось решить эту проблему. Моя первоначальная идея заключалась в том, чтобы получить количество раз, когда текстовый файл редактировался, и поэтому я решил, что добавление чего-то в каждую строку этого текстового файла и подсчет каждой строки помогут, но я не мог найти способ.

Что я сделал, так это добавил счетчик, который увеличивается на 1 каждый раз, когда он сохраняется, а затем, когда он читается, к нему добавляется +1. Таким образом, у меня есть точное количество раз, когда он редактировался, потому что каждый раз, когда редактируется текстовый файл, как упоминалось ранее, он увеличивается, как счетчик, на 1. Поэтому, если пользователь редактировал текстовый файл примерно 12 раз, тогда будет число 12 в файл, и он будет прочитан, когда пользователь решит снова отредактировать текстовый файл, как только он сохранит +1 к 12, будет добавлено значение 13.

Я использовал этот метод для увеличения на единицу:

Using isoStream As IsolatedStorageFileStream = New IsolatedStorageFileStream("textfile.text", FileMode.CreateNew, isoStore) Using writer As StreamWriter = New StreamWriter(isoStream)
      Dim i As Integer
      i += 1
      writer.WriteLine(i)
  End Using
End Using
person Zer0    schedule 14.07.2014