Foxtable(狐表)用户栏目专家坐堂 → [求助]从一份130M的文本中读取数据


  共有2593人关注过本帖平板打印复制链接

主题:[求助]从一份130M的文本中读取数据

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


加好友 发短信
等级:幼狐 帖子:174 积分:2349 威望:0 精华:0 注册:2015/8/12 15:36:00
[求助]从一份130M的文本中读取数据  发帖心情 Post By:2019/8/31 10:51:00 [只看该作者]

需要从一份130M的文本中读取数据(有1780000行),并写入数据表中,执行以下代码变得时间好长好长,最后死机了,
请前辈帮忙修改一下代码,

Dim dlg As new OpenFileDialog
dlg.Filter = "文本文件|*.txt"
If dlg.ShowDialog = DialogResult.OK Then
Using sr As IO.StreamReader = New IO.StreamReader(dlg.FileName,System.Text.Encoding.Default)
    Dim line As String = sr.ReadLine() '读取一行
        Dim rs1() As String = line.Split(vbcr)
        For i As Integer = 0 To rs1.Length - 1
            Dim cs() As String = rs1(i).Split(vbtab)
            If cs.Length = 4 Then
                Dim dr As DataRow = DataTables("表A").Addnew()
                dr("第一列") = cs(0)
                dr("第二列") = cs(1)
                dr("第三列") = cs(2)
                dr("第四列") = cs(3)
            End If
        Next 
    Do While line IsNot Nothing '如果不为空.为空说明读取完毕,结束循环
        line = sr.ReadLine() '读取下一行        
        Dim rs() As String = line.Split(vbcr)
        For i As Integer = 0 To rs.Length - 1
            Dim cs() As String = rs(i).Split(vbtab)
            If cs.Length = 4 Then
                Dim dr As DataRow = DataTables("表A").Addnew()
                dr("第一列") = cs(0)
                dr("第二列") = cs(1)
                dr("第三列") = cs(2)
                dr("第四列") = cs(3)
            End If
        Next     
    Loop
End Using
End If

 回到顶部