我用“Open sfname For Input As #1”打开文本文件然后进行逐行处理,但是我的文件太大,300M,每次都要把文件全部读进来后才处理,这样的方式每次都死机,请问是不是可以用其它方式打开文件。fs = CreateObject("scripting.filesystemobject")这种方式可以嘛?我在msdn上没有看到关于这种方式的判断文件结束的函数,比如eof之类的。大家给一点建议,谢谢了。

解决方案 »

  1.   

    DoEvents,然后等。要不就别用VB了,换c试试!
      

  2.   

    smalle(锋) :能否说得详细一点,如何改变读文件的方式?
      

  3.   

    就是想知道使用opentextfile()的时候,使用readline读文件,如何判断文件时候结束。
    eof函数在filesystemobject对象上如何使用?
      

  4.   

    逐行读入,然后进行切分,切分后再写入到一个新的文本文件中,其实很简单,我也知道使用filesystemobject就可以进行,但是就是没有找到如何判断读到文件结束的标志,我也想到了个非常荒谬的办法,就是只要出错就结束,但是这个好像不是解决的问题的最优选择了,所以问问大家,如何判断文件结束,前提是使用opentextfile,而不是使用open as #1这种样式!
      

  5.   

    Dim strTmp As String
    Dim strResult As StringOpen "InputFile" For Input As #1
    Open "OutputFile" For Output As #2
        Do Until EOF(1)
           Line Input #1,strTmp
           '处理代码·····
           Print #2,strResult'将处理结果存入文件
           Doevents
        Loop
    Close #1
    Close #2
      

  6.   

    不要一行行的读进,速度很慢的
    我经常处理大数据量的文本比如航空影像中用的DEM格式的文件,大的有几百M
    通常我用二进制的方式一次性读入内存,速度极快
    然后我把回车换行符作为分隔符,使用split函数把内存中的大字符串分隔为数组
    再循环处理数组中的元素,每个下标元素即为一行,顺序也是一致的
    速度还可以,但是处理时一定要使用进度条标志处理过程,不然肯定以为是死机了
    数据量还是太大