我需要通過部分閱讀txt文件的一部分... 例如,在一個txt文件:(年齡,5char_name)閱讀txt文件的一部分,在VB.NET
17susan23wilma25fredy
我需要先閱讀17susan
。換句話說,前面的7個字符和23wilma
和25fredy
之後,但是我沒有閱讀整個文件和子文件記錄。有沒有辦法通過streamreader做到這一點?
記錄總是七個字節... 2個字節的年齡,5個字節的名稱和一行中的所有記錄。沒有跳進下一行。
我需要通過部分閱讀txt文件的一部分... 例如,在一個txt文件:(年齡,5char_name)閱讀txt文件的一部分,在VB.NET
17susan23wilma25fredy
我需要先閱讀17susan
。換句話說,前面的7個字符和23wilma
和25fredy
之後,但是我沒有閱讀整個文件和子文件記錄。有沒有辦法通過streamreader做到這一點?
記錄總是七個字節... 2個字節的年齡,5個字節的名稱和一行中的所有記錄。沒有跳進下一行。
我認爲這是解決方案:
Dim filestream As New FileStream("\records.txt", FileMode.Open)
Dim streamreader As New StreamReader(fs)
Dim buffer(7) As Char
bw.ReadBlock(buffer, 0, 7)
Console.WriteLine(buffer)
這是讀前7 ..你可以通過循環或者閱讀其他..
假設每個記錄有一個靜態數量的字符(在您的描述中有7個字符),您可以使用FileStream
閱讀器代替,並使用Read
方法一次檢索七個字符。
例如:
Const chunkSize As Integer = 7
Using inputFile = File.OpenRead("namefile.txt")
Dim bytesRead As Integer
Dim buffer = New Byte(chunkSize - 1) {}
bytesRead = inputFile.Read(buffer, 0, buffer.Length)
while bytesRead = 7
'Process the buffer here
bytesRead = inputFile.Read(buffer, 0, buffer.Length)
End While
End Using
(代碼沒有測試,但應該接近)
如果你總是想使用前7個字符,你可以簡單地使用代碼的Visual Basic行如:
Dim Result as String = Microsoft.VisualBasic.Left(string, no)
字符串是StreamReader行,您只想從中讀取前七個字符。
沒有任何整數值,它等於你想讀的字符數,在這種情況下,7
而且,以同樣的方式,你可以使用鼠標右鍵和中選擇從字符串正確或中間的某個地方。
目前尚不清楚如何字符串的部分分開彼此和什麼意思'年齡,5char_name'?年齡總是兩位數,名字總是5?什麼是所需的結果?有文件多行或只有一個? – 2013-04-08 21:47:24
那裏有1位數的年齡嗎?或者它會顯示09年9歲? – 2013-04-08 21:49:14
如果你正在和一個年幼的孩子打交道,它總是一個7字節的塊,或者它可以是一個6字節的塊。 4billy – Cortright 2013-04-08 21:49:28