vb.net读文件问题

kelerfang 2009-08-06 04:06:20
我用vb.net读文件的内容每次都是从第一行开始读起,如果文件的行数很多的话效率就很低,有什么办法能够直接从我需要的某行开始读呢?
...全文
147 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kelerfang 2009-08-06
  • 打赏
  • 举报
回复
我可能没说清楚,我有个文件,其中的数据是按行记录的,也就是说1行1条记录,我在做显示的时候想实现分页功能,但是要从第400行开始读的话,必须得把400行之前的数据也先遍历一遍,5楼的例子我也看过,没研究出来,请问例子中的方法能实现我想直接从第400行开始读的功能吗?
Missa 2009-08-06
  • 打赏
  • 举报
回复
呵呵 就像楼上说的 多用MSDN
StreamReader有2个重载.
jane_zhao 2009-08-06
  • 打赏
  • 举报
回复
第一种方法:例子
Dim instance As TextReader
Dim buffer As Char()
Dim index As Integer
Dim count As Integer
Dim returnValue As Integer

returnValue = instance.Read(buffer, index, _
count)
参数

buffer
类型:array<System..::.Char >[]()[]
此方法返回时,包含指定的字符数组,该数组的 index 和 (index + count - 1) 之间的值由从当前源中读取的字符替换。

index
类型:System..::.Int32
buffer 中开始写入的位置。

count
类型:System..::.Int32
最多读取的字符数。如果在将 count 个字符读入 buffer 之前已到达流的末尾,则当前方法将返回。

返回值
类型:System..::.Int32
已读取的字符数。该数小于或等于 count,具体取决于流中是否有可用的数据。如果调用此方法时没有更多的字符留下可供读取,则此方法返回 0。
第二种方法,例子
Dim instance As TextReader
Dim buffer As Char()
Dim index As Integer
Dim count As Integer
Dim returnValue As Integer

returnValue = instance.ReadBlock(buffer, _
index, count)
参数

buffer
类型:array<System..::.Char >[]()[]
此方法返回时,此参数包含指定的字符数组,该数组中从 index 到 (index + count -1) 之间的值由从当前源中读取的字符替换。

index
类型:System..::.Int32
buffer 中开始写入的位置。

count
类型:System..::.Int32
最多读取的字符数。

返回值
类型:System..::.Int32
基础流的位置由读入 buffer 的字符编号提前。
已读取的字符数。该数字将小于或等于 count,具体取决于是否所有的输入字符都已读取。

参考:http://msdn.microsoft.com/zh-cn/library/97e90x91(VS.95).aspx
kelerfang 2009-08-06
  • 打赏
  • 举报
回复
楼上的我用StreamReader来读的,如何指定起始位置啊,能给个例子吗?
Missa 2009-08-06
  • 打赏
  • 举报
回复
不知道你用的什么方式读取的
如果用StreamReader来读,可以指定起始位置和长度.
如果用FileStream或者BinaryStream来读,也有一样的方法
HelloGameProgramer 2009-08-06
  • 打赏
  • 举报
回复
坐板等答案
十八道胡同 2009-08-06
  • 打赏
  • 举报
回复
占楼等答案.

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧