Вы собираетесь читать файл как источник данных, поэтому давайте создадим переменную, которая будет ссылаться на его имя файла:
Dim srcFile = "C:\temp\twolines.txt"
Как вы уже показали, переменная необходима дляудерживайте количество найденных слов:
Dim counter = 0
Чтобы прочитать из файла, StreamReader выполнит эту работу.Теперь мы смотрим на документацию для него (да, действительно) и замечаем, что у него есть метод Dispose
.Это означает, что мы должны явно утилизировать его после того, как мы его использовали, чтобы убедиться, что никакие системные ресурсы не связаны до следующей перезагрузки компьютера (например, может произойти утечка памяти "" ").К счастью, для этого позаботится конструкция Using
:
Using sr As New StreamReader(srcFile)
И теперь мы хотим построчно перебирать содержимое файла до тех пор, покаконец файла:
While Not sr.EndOfStream
Затем мы хотим прочитать строку и определить, сколько элементов разделено пробелами:
counter += sr.ReadLine().Split({" "c}, StringSplitOptions.RemoveEmptyEntries).Length
Оператор +=
похож на выражение«добавьте n к a» вместо того, чтобы сказать «a = a + n».{" "c}
является буквенным массивом символа "" c.c
говорит, что это символ, а не строка из одного символа.StringSplitOptions.RemoveEmptyEntries
означает, что если бы был текст "one two"
, он бы игнорировал лишние пробелы.
Итак, если вы писали консольную программу, он мог бы выглядеть так:
Imports System.IO
Module Module1
Sub Main()
Dim srcFile = "C:\temp\twolines.txt"
Dim counter = 0
Using sr As New StreamReader(srcFile)
While Not sr.EndOfStream
counter += sr.ReadLine().Split({" "c}, StringSplitOptions.RemoveEmptyEntries).Length
End While
End Using
Console.WriteLine(counter)
Console.ReadLine()
End Sub
End Module
Любые украшения, такие как запись числа и проверка ошибок, остаются за вами.