Foxtable(狐表)用户栏目专家坐堂 → [求助]批量导入TXT文件


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

主题:[求助]批量导入TXT文件

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


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
[求助]批量导入TXT文件  发帖心情 Post By:2020/5/2 19:08:00 [显示全部帖子]

老师好!
批量追加导入TXT文件时,可能会产生重复数据。
我想借鉴利用字典批量导入execl文件的方式,如果数据表已有数据的【代码】和【时间】与导入数据相同,那么就覆盖或跳过。
请老师帮助修改一下按钮代码!谢谢!

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

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



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


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2020/5/6 16:54:00 [显示全部帖子]

谢谢蓝老师!
我测试如果选择覆盖导入时,速度会非常慢。
当表格为空时,如果用普通追加导入实例中三个txt文件,不到0.7秒,但是如果选择覆盖导入会耗时近5秒。是哪里的原因?

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


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2020/5/12 12:08:00 [显示全部帖子]

蓝老师好!
如果导入通达信股piao软件生成的日线数据,会提示日期列为字符类型(附件中的SH600008),感觉文本文件不会记录下来字符串的格式~
怎样修改一下代码才能通用?
另外,老师提示参考http://www.foxtable.com/webhelp/topics/2225.htm  修改代码,不知道从哪里下手,请老师指教。
谢谢!

图片点击可在新窗口打开查看此主题相关图片如下:001.jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:txt导入提问.rar



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


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2020/5/14 15:03:00 [显示全部帖子]

请老师帮忙看看计算涨跌幅的代码,存在下列问题:
1、只计算追加数据的涨跌幅,以前计算过的就跳过去,但是行数cn的计数不对;
2、要计算之前是不是要把数据都加载进来,因为刚追加的第一条数据需要利用上一条数据的收盘价;
3、sql外部数据源能不能在后台计算,不加载数据?
代码如下:

Dim cn As Integer = 0   '计算行数
Dim t As Table = Tables("股piao数据")
Dim codes As List (Of String) = DataTables("股piao数据").GetValues("代码","","时间")
Dim st As Date = Date.Now
For Each code As String In codes
    Dim drlist As List (Of DataRow) = DataTables("股piao数据").Select("代码 = '" & code & "'")
    For i As Integer = 0 To drlist.Count - 1
        If drlist(i)("涨跌幅") = Nothing Then   '如果涨跌幅为空
            cn +=1  '数据行数
            If i = 0 Then
                drlist(i)("涨跌幅") = (drlist(i)("收盘价") - drlist(i)("开盘价")) / drlist(i)("开盘价") * 1%
            Else
                drlist(i)("涨跌幅") = (drlist(i)("收盘价") - drlist(i - 1)("收盘价")) / drlist(i - 1)("收盘价") * 1%
            End If
        End If
    Next
Next

MessageBox.Show("计算: " & cn & "行数据" & vbcrlf & "耗时: " & (Date.Now - st).TotalSeconds & "秒")



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


 回到顶部