Ok, так что у меня есть текстовый файл, текстовый файл имеет некоторые строковые данные в нем, что я должен прочитать, текстовый файл выглядит следующим образом:vb.net StreamReader выскочить из петли
start log
start day = 121010
begin detect
1 121010 05 00 21 50 3 00
2 121010 04 01 21 30 2 00
3 121010 04 01 22 40 1 01
Что Я делаю это чтение файла журнала с помощью средства чтения потока, и я установил условие для чтения каждой строки, если строка имеет какие-либо буквенные или специальные символы, которые она пропускает и перемещается на следующую, и если длина строки меньше длины, Я указываю, что он тоже пропустит его. Вот мой код, чтобы сделать это:
If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim filename As String = OpenFileDialog1.FileName
Dim line As String
Dim num As Integer
Dim disaprovedcharacters As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ.,:[email protected]#$%^&*()_-+=[]''?<>\|"
Using sr As New StreamReader(filename)
While Not sr.EndOfStream
line = sr.ReadLine
If line.Length > 10 Then
If Not line.LastIndexOfAny(disaprovedcharacters.ToCharArray) <> -1 Then
Using sr2 As New StreamReader(filename)
num = line.Substring(0, 5)
End Using
End If
End If
End While
End Using
End If
И это прекрасно работает для меня, линия теперь будет иметь значение:
1 121010 05 00 21 50 3 00
проблема в том, что я хочу, чтобы установить первые 5 символов (обратите внимание на пробелы) в первой строке строки (строка после «стартового журнала, начального дня и т. д.»). Я сделал это, используя:
num = line.substring(0, 5)
и он показывает мне правильный номер. Единственная проблема заключается в том, как остановить цикл while после того, как он нашел первую строку в строке. Например, цикл while будет работать до тех пор, пока он не достигнет первой строки строки, а затем перестанет работать. Потому что все, что мне нужно, это первое число, в этом случае его «1». Но в окне сообщения появится «1», затем «2» и т. Д., Поскольку цикл while работает до конца файла.
Любая помощь будет оценена, и если я не буду иметь никакого смысла, пожалуйста, дайте мне знать, но я попытался объяснить это как можно проще.
Какова цель этого внутреннего StreamReader? Он открывается (sr2), но никогда не используется для чего-либо? Зачем открывать тот же файл дважды? –
К сожалению, не видел этого, спасибо. –