Foxtable(狐表)用户栏目专家坐堂 → 读取超过100M的文本文件


  共有4330人关注过本帖树形打印复制链接

主题:读取超过100M的文本文件

帅哥哟,离线,有人找我吗?
cglsg5076
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1020 积分:6658 威望:0 精华:0 注册:2015/2/25 23:14:00
读取超过100M的文本文件  发帖心情 Post By:2015/5/3 22:25:00 [只看该作者]

请问各位老师,foxtable能否读取超过100M大小的文本文件。我用以下的方法不行,是否有更好的办法。

Dim dlg As new OpenFileDialog
dlg.Filter = "TEXT|*.txt|DAT|*.dat|P294|*.p294"
If dlg.ShowDialog = DialogResult.OK Then
    Dim strs As String = FileSys.ReadAllText(dlg.FileName)
    strs = strs.Replace(vblf,"")
    Dim rs() As String = strs.Split(vbcr)


谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
cglsg5076
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1020 积分:6658 威望:0 精华:0 注册:2015/2/25 23:14:00
  发帖心情 Post By:2015/5/3 22:44:00 [只看该作者]

foxtable提示内存溢出。该如何处理?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍01
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:88 积分:518 威望:0 精华:0 注册:2015/5/3 21:12:00
  发帖心情 Post By:2015/5/3 22:56:00 [只看该作者]

Dim sr As new Io.StreamReader("d:\test.txt")
Dim line As String = sr.ReadLine()
Do While line IsNot Nothing
    line = sr.ReadLine()
    output.show(line)
Loop
sr.Close

 回到顶部
帅哥哟,离线,有人找我吗?
cglsg5076
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1020 积分:6658 威望:0 精华:0 注册:2015/2/25 23:14:00
  发帖心情 Post By:2015/5/3 23:18:00 [只看该作者]

谢谢指点,可是Io.StreamReader为什么在帮助文件里找不到?在哪里可以找到关于Io.StreamReader的资料?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍01
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:88 积分:518 威望:0 精华:0 注册:2015/5/3 21:12:00
  发帖心情 Post By:2015/5/3 23:31:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
cglsg5076
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1020 积分:6658 威望:0 精华:0 注册:2015/2/25 23:14:00
  发帖心情 Post By:2015/5/4 0:58:00 [只看该作者]

非常感谢指点!再问一个问题,如何从文件尾部向头部读取数据,而不是从头部向尾部读取数据?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍01
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:88 积分:518 威望:0 精华:0 注册:2015/5/3 21:12:00
  发帖心情 Post By:2015/5/4 9:02:00 [只看该作者]

以下是引用cglsg5076在2015/5/4 0:58:00的发言:
非常感谢指点!再问一个问题,如何从文件尾部向头部读取数据,而不是从头部向尾部读取数据?

 

不行,必须从头开始读取。

 

你可以临时保存读取的数据,读取完以后,再反向循环输出。


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/5/4 9:05:00 [只看该作者]

Dim path As String = "c:\MyTest.txt"

        Try
            If FileSYS.FileExists(path) Then
                FileSYS.DeleteFile(path)
            End If

            Dim sw As IO.StreamWriter = New IO.StreamWriter(path)
            sw.WriteLine("This")
            sw.WriteLine("is some text")
            sw.WriteLine("to test")
            sw.WriteLine("Reading")
            sw.Close()

            Dim sr As IO.StreamReader = New IO.StreamReader(path)
            Dim newValue As String
            Dim oldValue As String
            Do While sr.Peek() > 0
                 newValue = sr.ReadLine()
                 oldValue = IIF(newValue <> "" , newValue , oldValue)
            Loop
            sr.Close()
            output.show(oldValue)
        Catch e As Exception
            output.show("The process failed:" & e.ToString())
        End Try

 回到顶部
帅哥哟,离线,有人找我吗?
cglsg5076
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1020 积分:6658 威望:0 精华:0 注册:2015/2/25 23:14:00
  发帖心情 Post By:2015/5/4 14:25:00 [只看该作者]

多谢老师指点,我试试。

 回到顶部