以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  读取超过100M的文本文件  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=67809)

--  作者:cglsg5076
--  发布时间:2015/5/3 22:25:00
--  读取超过100M的文本文件
请问各位老师,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
--  发布时间:2015/5/3 22:44:00
--  
foxtable提示内存溢出。该如何处理?
--  作者:大红袍01
--  发布时间: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
--  发布时间:2015/5/3 23:18:00
--  
谢谢指点,可是Io.StreamReader为什么在帮助文件里找不到?在哪里可以找到关于Io.StreamReader的资料?
--  作者:大红袍01
--  发布时间:2015/5/3 23:31:00
--  

 

https://msdn.microsoft.com/zh-cn/library/system.io.streamreader.aspx

 

http://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=monline_4_dg&wd=vb.net%20%E6%96%87%E6%9C%AC%E8%AF%BB%E5%86%99&rsv_pq=ca65c60f0009b5e0&rsv_t=55d9kDaYgV40BATCuVGkWx7IeZLhtoe9Fv6xX3Z9MjWW51skUii0rCSMij1z7yngxLSl&rsv_enter=1&inputT=2437&rsv_sug1=16&rsv_sug3=25&rsv_sug2=0&rsv_sug4=2999&rsv_sug=1

 


--  作者:cglsg5076
--  发布时间:2015/5/4 0:58:00
--  
非常感谢指点!再问一个问题,如何从文件尾部向头部读取数据,而不是从头部向尾部读取数据?
--  作者:大红袍01
--  发布时间:2015/5/4 9:02:00
--  
以下是引用cglsg5076在2015/5/4 0:58:00的发言:
非常感谢指点!再问一个问题,如何从文件尾部向头部读取数据,而不是从头部向尾部读取数据?

 

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

 

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


--  作者:Bin
--  发布时间: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
--  发布时间:2015/5/4 14:25:00
--  
多谢老师指点,我试试。