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


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

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

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2013/8/3 21:39:00 [只看该作者]

谢谢版主关注,但更改窗口代码点确定后,出现如下错误:

    编译错误:Local variable ’dlg’ is already declared in the current block.
    错误代码:Dim dlg As New FolderBrowserDialog

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | 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



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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2013/8/4 7:40:00 [只看该作者]

还是没反应,取消隐藏txt文件后缀也一样。请继续帮忙看看。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
图片点击可在新窗口打开查看


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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2013/8/5 21:43:00 [只看该作者]

首先感谢“有点甜”朋友的无私帮助,但仍然存在如下问题:含有6个txt文件的文件夹只成功导入了2个,含有100个txt文件的文件夹一个也没能导入。我现在上传一个含有15个txt文件的文件夹。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:数据.zip

另外,导入的所有狐表文件的列标题如何设为:时间   开盘价  最高价  最低价  收盘价  成交量   金额 ,再增加一列涨跌幅(后一天的收盘价-上一天的收盘价)/上一天的收盘价*100%

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2013/8/5 23:05:00 [只看该作者]

非常感谢,已成功导入所有txt文件。
但每次更新数据都会要求点击“**表已存在”,由于有数百个表格,能否选择“全部覆盖”或“追加更新数据”,这样更新速度会快一点。

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/8/6 8:52:00 [只看该作者]

 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
                Dim mg As New Merger
mg.SourcePath = "c:\data\" '指定数据文件所在目录
mg.Format = 
"Delimited" '指定格式
mg
.SourceTableName = "订单" '指定要的文件,无需扩展名
mg
.DataTableName = "订单" '指定接收数据的表
mg
.Merge() '开始
            End If

 http://www.foxtable.com/help/topics/0685.htm ELse里面使用合并代码即可

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/8/6 10:03:00 [只看该作者]

这么实用的功能模块,不来个锦上添花,心里好不落忍(也可能是画蛇添足啊)。

首先感谢jyh7081、Bin、有点甜。

 

 

传不上来了,咋回事?

[此贴子已经被作者于2013-8-6 10:06:10编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/8/6 10:08:00 [只看该作者]

不会吧,我传个空白文件看看:

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目982.table

 

呵呵,可以上传,lsy兄你换个浏览器看看。


 回到顶部
总数 27 上一页 1 2 3 下一页