好了,所以我有一個文本文件,該文本文件中有一些字符串數據,我要讀的文本文件看起來像這樣: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),但從未用於定界?爲什麼要打開同一個文件兩次? –
哎呀,沒有看到,謝謝。 –