我需要逐个读取txt文件... 例如,在txt文件中:( age,5char_name)
17susan23wilma25fredy
我需要先阅读17susan
。换句话说,前七个字符在23wilma
和25fredy
之后,但是我没有读取整个文件并对文件记录进行子串。有没有办法可以做这是通过streamreader?
记录总是七个字节...年龄为2个字节,名称为5个字节,一行中的所有记录。没有跳到下一行。
答案 0 :(得分: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 ..你可以通过循环或其他方式阅读..
答案 1 :(得分: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
(代码未经过测试,但应该关闭)
答案 2 :(得分:0)
如果您总是想使用前7个字符,您只需使用Visual Basic代码行,如:
Dim Result as String = Microsoft.VisualBasic.Left(string, no)
String是StreamReader行,您只想从中读取前七个字符。
否是任何整数值,它等于您想要读取的字符数,在本例中为7。
此外,以同样的方式,您可以使用右和中间从右侧或中间的某个位置选择字符串。