以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  合并文本文件  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=88103)

--  作者:fubblyc
--  发布时间: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



--  作者:大红袍
--  发布时间: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
--  发布时间:2016/7/27 10:50:00
--  

哦。谢谢红袍老师。

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


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

--  作者:大红袍
--  发布时间:2016/7/27 10:52:00
--  

方法一:你用代码添加;

 

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

 


--  作者:fubblyc
--  发布时间: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编辑过]

--  作者:大红袍
--  发布时间:2016/7/27 11:42:00
--  

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

 

改成

 

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