Foxtable(狐表)用户栏目专家坐堂 → 合并文本文件


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

主题:合并文本文件

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
合并文本文件  发帖心情 Post By:2016/7/27 10:24:00 [只看该作者]

 合并文本文件出现如下错误:


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

代码如下:在弹出4之后出错。 

Dim dlg As New OpenFileDialog
dlg.Filter= "文本文件|*.txt"
If dlg.ShowDialog = DialogResult.Ok Then
    Dim f As Io.FileInfo =   FileSys.GetFileInfo(dlg.FileName)
messagebox.show("1")
    Dim mg As New Merger
    mg.SourcePath = f.DirectoryName & "\"
messagebox.show("2")
    mg.Format = "Delimited"
    mg.SourceTableName = f.Name.Replace(".txt","")
messagebox.show("3")
    mg.Header= True
    mg.DataTableName = "库位调整信息导入"
messagebox.show("4")
    mg.Merge() '开始合并  
End If



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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/27 10:36:00 [只看该作者]

不支持含有 .  字符文件的合并。改一下代码

 

Dim dlg As New OpenFileDialog
dlg.Filter= "文本文件|*.txt"
If dlg.ShowDialog = DialogResult.Ok Then
    Dim f As Io.FileInfo = FileSys.GetFileInfo(dlg.FileName)
    Dim mg As New Merger
    mg.SourcePath = f.DirectoryName & "\"
    mg.Format = "Delimited"
    Dim fname As String = f.Name.Replace(".txt","")
    If fname.IndexOf(".") >= 0 Then
        fname = fname.replace(".", "")
       
        FileSys.CopyFile(dlg.FileName, mg.SourcePath & fname & ".txt", True)
    End If
    mg.SourceTableName = fname
    mg.Header= True
    mg.DataTableName = "库位调整信息导入"
    mg.Merge() '开始合并
    If f.Name.Replace(".txt","").IndexOf(".") >= 0 Then FileSys.DeleteFile(mg.SourcePath & fname & ".txt", 2 ,2)
End If

[此贴子已经被作者于2016/7/27 10:37:39编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2016/7/27 10:50:00 [只看该作者]

哦。谢谢红袍老师。

对了,源文件本来是没有第一行的列名的,是需要用户手动添加的。可否软件设计,不需要用户手动添加这一行,直接合并进来数据呢?


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

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/27 10:52:00 [只看该作者]

方法一:你用代码添加;

 

方法二:你用代码读取txt合并数据 http://www.foxtable.com/webhelp/scr/2629.htm

 


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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2016/7/27 11:25:00 [只看该作者]

谢谢 红袍老师,我用 方法二,没有成功:

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

没有合并进去,也没有报错。

 

Dim   dlg As   new  OpenFileDialog
 dlg.Filter =   "文本文件|*.txt"
 Tables("库位调整信息导入").StopRedraw
 If   dlg.ShowDialog =   DialogResult.OK Then
     Dim   strs As  String =   FileSys.ReadAllText(dlg.FileName)
       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(vbtab)
         If   cs.Length =   4 Then
             Dim   dr As  DataRow = DataTables("库位调整信息导入").Addnew()
               dr("条形码") =  cs(0)
               dr("区号") =  cs(1)
               dr("标记值") =  cs(2)
               dr("时间") =  cs(3)
          End If
     Next
 End If
 Tables("库位调整信息导入").ResumeRedraw


[此贴子已经被作者于2016/7/27 11:24:51编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/27 11:42:00 [只看该作者]

Dim   cs() As  String =   rs(i).Split(vbtab)

 

改成

 

Dim   cs() As  String =   rs(i).Split(",")


 回到顶部