Foxtable(狐表)用户栏目专家坐堂 → [求助]如何批量导入txt文件,并批量刷新


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

主题:[求助]如何批量导入txt文件,并批量刷新

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/8/2 21:11:00 [显示全部帖子]

导入一个txt代码。未见楼主附件。
Dim ip as New Importer
ip.SourcePath = "c:\Data\" '指定目录
ip.SourceTableName = "订单" '指定要导入的文件“订单.txt”
ip.NewTableName ="订单" '导入后的表名
ip.Format = "Delimited" '指定导入格式
ip.Import()

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/8/2 21:40:00 [显示全部帖子]

例子,选择文件夹,然后可以导入数据。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:导入txt数据.table


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/8/2 22:47:00 [显示全部帖子]

可能是你隐藏了.txt的后缀名吧,因为判断的时候,是以.txt才允许导入的。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/8/2 22:48:00 [显示全部帖子]

你把窗口的代码改一改试试

Dim dlg As New FolderBrowserDialog
If dlg.ShowDialog = DialogResult.Ok Then
    For Each file As String In FileSys.GetFiles(dlg.SelectedPath)
        
        Dim strs As String = FileSys.ReadAllText(file)
        strs = strs.Replace(vblf,"")
        Dim rs() As String = strs.Split(vbcr)
        For i As Integer = 0 To rs.Length - 1
            Dim cs() As String = rs(i).Split(" ")
            If cs.Length = 7 Then
                Dim dr As DataRow = DataTables("股piao表").Addnew()
                dr("第一列") = cs(0)
                dr("第二列") = cs(1)
                dr("第三列") = cs(2)
                dr("第四列") = cs(3)
                dr("第五列") = cs(4)
                dr("第六列") = cs(5)
                dr("第七列") = cs(6)
            End If
        Next
        
    Next
End If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/8/3 22:30:00 [显示全部帖子]

 修改的代码

Dim dlg As New FolderBrowserDialog
If dlg.ShowDialog = DialogResult.Ok Then
    For Each file As String In FileSys.GetFiles(dlg.SelectedPath)
        If file.EndsWith(".txt") Then
            Dim strs As String = FileSys.ReadAllText(file)
            strs = strs.Replace(" ", ",")
            FileSys.WriteAllText(file, strs, False, Encoding.Default)
            
            Dim ip As New Importer
            Dim name = FileSys.GetName(file.SubString(0, file.length - 4))
            ip.SourcePath = dlg.SelectedPath
            ip.SourceTableName = name
            ip.NewTableName = name '导入后的表名
            ip.Format = "Delimited" '指定导入格式
            ip.Import()
        End If
    Next
End If

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:导入txt数据 (1).table



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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/8/4 23:26:00 [显示全部帖子]

 我测试可以,具体代码

Dim dlg As New FolderBrowserDialog
If dlg.ShowDialog = DialogResult.Ok Then
    For Each file As String In FileSys.GetFiles(dlg.SelectedPath)
        If file.EndsWith(".txt") Then
            Dim strs As String = FileSys.ReadAllText(file)
            strs = strs.Replace(" ", ",")
            FileSys.WriteAllText(file, strs, False, Encoding.Default)
            
            Dim name = FileSys.GetName(file.SubString(0, file.length - 4))
            If DataTables.Contains(name) = False Then
                Dim ip As New Importer              
                ip.SourcePath = dlg.SelectedPath
                ip.SourceTableName = name
                ip.NewTableName = name '导入后的表名
                ip.Format = "Delimited" '指定导入格式
                ip.Import()
            Else
                msgbox(name & "表已经存在")
            End If
        End If
    Next
End If


图片点击可在新窗口打开查看此主题相关图片如下:2013年8月4日.gif
图片点击可在新窗口打开查看


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/8/5 22:42:00 [显示全部帖子]

 经测试是你后缀名.TXT和判断.txt的差异,下面的代码可以正常导入数据,添加列标题。但是,涨跌列要你自己倒入数据以后再用代码分析填入。

Dim dlg As New FolderBrowserDialog
If dlg.ShowDialog = DialogResult.Ok Then
    For Each file As String In FileSys.GetFiles(dlg.SelectedPath)
        If file.ToLower.EndsWith(".txt") Then
            Dim strs As String = FileSys.ReadAllText(file)
            Dim title As String = "时间,开盘价,最高价,最低价,收盘价,成交量,金额" & vbCrLf
            If strs.StartsWith(title) = False Then
                strs = strs.Replace(" ", ",")
                strs = title + strs
                FileSys.WriteAllText(file, strs, False, Encoding.Default)
            End If
            
            Dim name = FileSys.GetName(file.SubString(0, file.length - 4))
            If DataTables.Contains(name) = False Then
                Dim ip As New Importer
                ip.SourcePath = dlg.SelectedPath
                ip.SourceTableName = name
                ip.NewTableName = name '导入后的表名
                ip.Format = "Delimited" '指定导入格式
                ip.Import()
            Else
                msgbox(name & "表已经存在")
            End If
        End If
    Next
End If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/8/6 22:15:00 [显示全部帖子]

以下是引用lsy在2013-8-6 11:44:00的发言:
 下载信息  [文件大小:1.2 MB  下载次数:11]
图片点击可在新窗口打开查看点击浏览该文件:导入txt数据.zip


这个确实不错。加一个导入时候根据代码找到标题的功能。

至于目录树管理表的话,建议楼主把狐表的帮助文档看一下自己弄一下。
思路是编辑一个对应的表,然后生成目录树。


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:导入txt数据.zip








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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/8/6 22:46:00 [显示全部帖子]

以下是引用jyh7081在2013-8-6 22:38:00的发言:
不只“有点甜”,你“太甜了”,特别是 “加一个导入时候根据代码找到标题的功能”, 非常感谢。目录树管理表虽然提供了思路,但仍感到无能为力。还有,批量增加、删除表怎么办?



关于目录树显示表,建一个对应的数据表(第一层有哪些分类,第二层有哪些分类或者哪些对应的表),然后就可以直接生成树了。

关于动态增加表和删除表,可以参考下。最好还是自己看看软件自带的帮助文档,自食其力,不求人,加油。


 回到顶部