以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  拆分文件  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=151515)

--  作者:cglsg5076
--  发布时间:2020/6/26 11:17:00
--  拆分文件
请问老师,我有100万行数据的文本文件,要求拆分成5个20万行的文本文件,请问代码如何写?
--  作者:linyunu1
--  发布时间:2020/6/26 13:38:00
--  
参考
Dim dlg As New OpenFileDialog
dlg.Filter = "文本文件|*.txt"
If dlg.ShowDialog = DialogResult.OK Then
        Dim fl As String = dlg.FileName
        Dim sr As System.IO.StreamReader = New System.IO.StreamReader(fl,System.Text.Encoding.Default)
        Dim line As String
        Dim sb As new StringBuilder
        Dim i As Integer = 0
        Dim j As Integer = 0
        Do Until sr.EndOfStream

            if i = 10 then  \'每份的行数
                line = sb.Tostring
                Dim f As String = SpecialFolder.DesktopDirectory & "\\" & j & ".txt"
                FileSys.WriteAllText(f, line, False, Encoding.Default)
                j += 1
                i = 0
                sb.Clear()
                line = ""
            else
                sb.AppendLine(sr.ReadLine)
                i += 1
            end if
        Loop

        line = sb.Tostring
        if line > "" then
            Dim f As String = SpecialFolder.DesktopDirectory & "\\" & j & ".txt"
            FileSys.WriteAllText(f, line, False, Encoding.Default)
        end if
        sr.Close()
        Msgbox("拆分完成")
End If
[此贴子已经被作者于2020/6/26 13:52:03编辑过]

--  作者:cglsg5076
--  发布时间:2020/6/26 16:55:00
--  
谢谢老师,sb.clear()不对,clear不是stringbuilder成员,请问如何改正?注销他运行内存溢出。
--  作者:linyunu
--  发布时间:2020/6/26 17:12:00
--  
我测试正常 
--  作者:linyunu
--  发布时间:2020/6/26 17:13:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.txt


代码没改   测试没问题

--  作者:cglsg5076
--  发布时间:2020/6/26 17:46:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:图片1.png
图片点击可在新窗口打开查看

--  作者:cglsg5076
--  发布时间:2020/6/26 17:47:00
--  
语法错误,老师


--  作者:linyunu
--  发布时间:2020/6/26 17:56:00
--  

.NET Framework 要4.0或4.0 以上


--  作者:linyunu
--  发布时间:2020/6/26 17:58:00
--  
或者试试sb.Remove(0, sb.Length)
--  作者:cglsg5076
--  发布时间:2020/6/26 18:21:00
--  
不行,我的操作系统是win10,安装提示已经是.net framework4.0以上,安装 .net framework 4.5提示也是系统已经是 .net framework 4.5,编译程序,还是不行。