以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何批量导入txt文件,并批量刷新  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=38632)

--  作者:jyh7081
--  发布时间:2013/8/2 21:01:00
--  [求助]如何批量导入txt文件,并批量刷新
     我想用狐表分析股票数据,先用股票软件导出了每个股票的日线txt文件,再用狐表逐个导入,在此过程中遇到几个问题,想请各位前辈高手帮助:

1、如何批量导入文件夹中的txt文件,文件名取txt文件名;

2、如何根据新的日线txt文件刷新导入后的狐表文件;

3、txt文件没有表头,第一行数据如下1997/10/15   8.00   8.18   7.81   7.88   310858.00   248436000.00  
    空格分开后的数据分别代表: 时间   开盘价  最高价  最低价  收盘价  成交量   金额   
    但是txt文件没有涨跌幅,需要增加一列;

    附:股票日线txt文件
[此贴子已经被作者于2013-8-2 21:02:49编辑过]

--  作者:jyh7081
--  发布时间:2013/8/2 21:02:00
--  
附件添加并上传了,但看不到。粘贴一段给大家看:


1997/10/15 8.00 8.18 7.81 7.88 310858.00 248436000.00
1997/10/16 7.90 8.20 7.83 8.18 123153.00 98570000.00
1997/10/17 8.20 8.21 7.90 7.98 77541.00 62038000.00
1997/10/20 7.96 8.28 7.94 8.16 80099.00 64948000.00
1997/10/21 8.26 8.38 8.14 8.23 60224.00 49562000.00
1997/10/22 8.16 8.23 7.79 7.81 69852.00 55574000.00
1997/10/23 7.85 8.00 7.80 7.83 32276.00 25433000.00
1997/10/24 7.85 7.95 7.65 7.78 31229.00 24136000.00
1997/10/27 7.80 8.20 7.61 7.99 51096.00 40513000.00
1997/10/28 8.10 8.25 7.82 7.86 56728.00 45722000.00
1997/10/29 7.80 7.98 7.69 7.85 21274.00 16702000.00
1997/10/30 7.81 7.98 7.63 7.65 37412.00 29093000.00
1997/10/31 7.60 7.74 7.53 7.68 23134.00 17575000.00
1997/11/03 7.70 7.75 7.52 7.59 14385.00 10941000.00
1997/11/04 7.60 7.70 7.53 7.66 11897.00 9046000.00
1997/11/05 7.60 7.79 7.49 7.62 17488.00 13260000.00
1997/11/06 7.68 7.76 7.40 7.47 19663.00 14864000.00
1997/11/07 7.53 7.55 7.31 7.41 18466.00 13650000.00
1997/11/10 7.38 7.78 7.38 7.60 25025.00 19035000.00
1997/11/11 7.60 7.60 7.31 7.50 8956.00 6673000.00
1997/11/12 7.50 7.50 7.31 7.32 8782.00 6476000.00
1997/11/13 7.30 7.40 7.18 7.39 12077.00 8781000.00
1997/11/14 7.40 7.50 7.31 7.31 10425.00 7724000.00
1997/11/17 7.38 7.50 7.18 7.24 8601.00 6294000.00
1997/11/18 7.23 7.25 7.02 7.10 13475.00 9589000.00
[此贴子已经被作者于2013-8-2 21:08:00编辑过]

--  作者:有点甜
--  发布时间: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()

--  作者:jyh7081
--  发布时间:2013/8/2 21:18:00
--  
谢谢。
能否用代码一次导入指定目录下的所有txt文件?

--  作者:有点甜
--  发布时间:2013/8/2 21:40:00
--  
例子,选择文件夹,然后可以导入数据。

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


--  作者:jyh7081
--  发布时间:2013/8/2 22:34:00
--  
下载后,试用不成功。点击窗口按钮,选中文件夹,点确定,没反应。
--  作者:有点甜
--  发布时间:2013/8/2 22:47:00
--  
可能是你隐藏了.txt的后缀名吧,因为判断的时候,是以.txt才允许导入的。
--  作者:有点甜
--  发布时间: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("股票表").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

--  作者:jyh7081
--  发布时间:2013/8/3 7:02:00
--  
导入一个或多个txt文件是可以了,但是一个文件夹中的多个txt文件导入后只形成了一个狐表文件,这个狐表文件的数据是多个txt文件数据的合并,没有形成多个txt文件名称的狐表文件,请继续指教。谢谢。
--  作者:Bin
--  发布时间:2013/8/3 9:17:00
--  
那还是用3楼的办法吧

        
Dim dlg As New FolderBrowserDialog
If dlg.ShowDialog = DialogResult.Ok Then
    For Each file As String In FileSys.GetFiles(dlg.SelectedPath)
        dim s as string = s.Substring(s.LastIndexOf("\\")+1,s.Length-s.LastIndexOf("\\")-1).Split(".")(0)
        Dim ip as New Importer
       ip.SourcePath = "c:\\Data\\" \'指定目录
       ip.SourceTableName = s \'指定要导入的文件“订单.txt”
       ip.NewTableName =s \'导入后的表名
      ip.Format = "Delimited" \'指定导入格式
      ip.Import()
        
    Next
End If