以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=86575)

--  作者:yanjinhua
--  发布时间:2016/6/20 22:54:00
--  [求助]

各位大侠:

      本人从本单位的系统中下载了一个文本文件(见“公司存款明细.txt"),该文本文件能够使用EXCEL进行导入(导入的文件见”从文本导入的EXCEL数据“)

使用以下编码出现报错(见”报错信息.doc"),请教如何解决从此文本文件进行导入。谢谢!

编码如下:

Dim dlg As New OpenFileDialog
dlg.Filter= "文本文件|*.txt"

If dlg.ShowDialog = DialogResult.Ok Then

    Dim ip As New Importer
    ip.SourcePath = dlg.FileName 
    ip.SourceTableName = "公司存款明细" 
    ip.NewTableName ="公司存款"
    ip.Format = "Delimited"
    ip.Import()
End If


--  作者:大红袍
--  发布时间:2016/6/20 23:16:00
--  

Dim dlg As New OpenFileDialog
dlg.Filter= "文本文件|*.txt"

If dlg.ShowDialog = DialogResult.Ok Then

    Dim ip As New Importer
    ip.SourcePath = FileSys.GetParentPath(dlg.FileName)
    ip.SourceTableName = FileSys.GetName(dlg.FileName).replace(".txt", "")
    ip.NewTableName ="公司存款"
    ip.Format = "Delimited"
    ip.Import()
End If

 


--  作者:yanjinhua
--  发布时间:2016/6/20 23:38:00
--  

谢谢大侠!

但是我导入后汉字部分全部变字了,是什么原因?


--  作者:大红袍
--  发布时间:2016/6/21
--  
 把你的文本文件上传上来测试一下。
--  作者:yanjinhua
--  发布时间:2016/6/21 8:41:00
--  
文本见附件,多谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:公司存款明细.txt


--  作者:大红袍
--  发布时间:2016/6/21 9:37:00
--  

Dim dlg As New OpenFileDialog
dlg.Filter= "文本文件|*.txt"

If dlg.ShowDialog = DialogResult.Ok Then
    Dim str As String = FileSys.ReadAllText(dlg.FileName, Encoding.UTF8)

    FileSys.WriteAllText("d:\\test.txt", str, False, Encoding.Default)
   
    Dim ip As New Importer
    ip.SourcePath = "d:\\"
    ip.SourceTableName = "test"
    ip.NewTableName ="公司存款"
    ip.Format = "Delimited"
    ip.Import()
End If


--  作者:yanjinhua
--  发布时间:2016/6/21 10:02:00
--  

转换成功了,多谢!


--  作者:yanjinhua
--  发布时间:2016/6/21 10:32:00
--  

导入虽然成功了,但是还是存在一个问题:

如“账号”列的内容不全,文本中是“213220837088800001”,但导入的数据中却是“ 21322083708880000”,最右边少了1位。

请教如何解决? 


--  作者:大红袍
--  发布时间:2016/6/21 10:54:00
--  

Dim dlg As New OpenFileDialog
dlg.Filter= "文本文件|*.txt"

If dlg.ShowDialog = DialogResult.Ok Then
    Dim str As String = FileSys.ReadAllText(dlg.FileName, Encoding.UTF8)
    Dim ary As String() = str.split(chr(10))
    str = ary(0) & vbcrlf
    For i As Integer = 1 To ary.length-1
        str &= """" & ary(i).replace(",", """,""") & """" & vbcrlf
    Next
    FileSys.WriteAllText("d:\\test.txt", str, False, Encoding.Default)
   
    Dim ip As New Importer
    ip.SourcePath = "d:\\"
    ip.SourceTableName = "test"
    ip.NewTableName ="公司存款"
    ip.Format = "Delimited"
    ip.Import()
End If


--  作者:yanjinhua
--  发布时间:2016/6/21 11:21:00
--  

高手呀!多谢!