2013-04-08 105 views
0

我需要通過部分閱讀txt文件的一部分... 例如,在一個txt文件:(年齡,5char_name)閱讀txt文件的一部分,在VB.NET

17susan23wilma25fredy 

我需要先閱讀17susan。換句話說,前面的7個字符和23wilma25fredy之後,但是我沒有閱讀整個文件和子文件記錄。有沒有辦法通過streamreader做到這一點?

記錄總是七個字節... 2個字節的年齡,5個字節的名稱和一行中的所有記錄。沒有跳進下一行。

+0

目前尚不清楚如何字符串的部分分開彼此和什麼意思'年齡,5char_name'?年齡總是兩位數,名字總是5?什麼是所需的結果?有文件多行或只有一個? – 2013-04-08 21:47:24

+0

那裏有1位數的年齡嗎?或者它會顯示09年9歲? – 2013-04-08 21:49:14

+0

如果你正在和一個年幼的孩子打交道,它總是一個7字節的塊,或者它可以是一個6字節的塊。 4billy – Cortright 2013-04-08 21:49:28

回答

1

我認爲這是解決方案:

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 ..你可以通過循環或者閱讀其他..

0

假設每個記錄有一個靜態數量的字符(在您的描述中有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 

(代碼沒有測試,但應該接近)

+0

我怎樣才能限制7個字符每一次? – Palindrom 2013-04-08 21:58:36

+0

查看我添加的示例。 – Geoff 2013-04-09 12:45:25

+0

這是讀*字節*,而不是字符。 OP可能意味着什麼,但相當重要的一個重要區別。 – 2013-04-09 12:48:31

0

如果你總是想使用前7個字符,你可以簡單地使用代碼的Visual Basic行如:

Dim Result as String = Microsoft.VisualBasic.Left(string, no) 

字符串是StreamReader行,您只想從中讀取前七個字符。

沒有任何整數值,它等於你想讀的字符數,在這種情況下,7

而且,以同樣的方式,你可以使用鼠標右鍵和中選擇從字符串正確或中間的某個地方。