0

我需要逐部分阅读一个txt文件...例如,在一个txt文件中:(age,5char_name)

17susan23wilma25fredy

我需要先阅读17susan。换句话说,前七个字符和之后23wilma25fredy我没有读取整个文件并将文件记录子串化。有没有办法通过流式阅读器做到这一点?

记录总是 7 个字节……2 个字节表示年龄,5 个字节表示姓名和一行中的所有记录。没有跳转到下一行。

4

3 回答 3

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.. 你可以通过循环或 for.. 阅读其他内容

于 2013-04-08T22:25:26.013 回答
0

假设每条记录的字符数是静态的(在您的描述中为七个),您可以改用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

(代码未经测试,但应该接近)

于 2013-04-08T21:50:42.160 回答
0

如果您总是想使用前 7 个字符,您可以简单地使用 Visual Basic 代码行,例如:

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

String 是您只想从中读取前七个字符的 StreamReader 行。

No 是任何整数值,它等于您要读取的字符数,在本例中为 7。

同样,您可以使用 Right 和 Mid 从右侧或中间某处选择字符串。

于 2013-04-08T22:20:14.893 回答