以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 如何读取文本数据写入数据表? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=173352) |
||||
-- 作者:cnsjroom -- 发布时间:2021/11/25 18:01:00 -- 如何读取文本数据写入数据表?
如何实现代码读取文本行数,并将数据进行拆分,第一行拆分为列名,根据列名创建临时表“统计”,然后从第二行开始进行内容拆分,并将拆分的内容分别对应第一行所拆分的列名赋值填充到临时表“统计”中 当前问题:1、如何获取文本文件的行,2、如何使用获取得到的行 代码如下: Dim s As String = FileSys.ReadAllText("C:\\Users\\Administrator\\Desktop\\20211125\\银行\\text.txt", Encoding.Default) Output.Show(s.split("|").Length-1) If s.split("|").Length-1 = 21 Then s.Insert(21,chr(13) & chr(10)) End If Dim Values1() As String = s.split(chr(13)) Output.Show(Values1(0)) 测试文本第一行数据,并进行指定拆分,当前可以创建含有拆分值为列名的空表“统计” Dim Multi As String = "账号|户名|交易日期|主机日期|交易时间|交易码|交易名称|借贷标记|交易金额|账户余额|营业机构|账务机构|交易柜员|授权柜员|柜员流水|现转标志|摘要代码|对方账号|对方名称|对方行号|对方行名" Dim Values() As String Values = Multi.split("|") Dim dtb As New DataTableBuilder("统计") For Index As Integer = 0 To Values.Length - 1 Output.Show(Values(Index)) dtb.AddDef(Values(Index), Gettype(String), 32) Next dtb.Build() [此贴子已经被作者于2021/11/25 18:03:22编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2021/11/25 20:40:00 -- 参考:http://www.foxtable.com/webhelp/topics/2629.htm |
||||
-- 作者:cnsjroom -- 发布时间:2021/11/26 8:38:00 -- 回复:(有点蓝)参考:http://www.foxtable.com/webh... 老师 参照过这个帮助 得到的结果和文本是一样的 还得麻烦老师根据我这个银行导出的text文本来指导下 文档已放入楼上的文件中 |
||||
-- 作者:有点蓝 -- 发布时间:2021/11/26 9:07:00 -- 帮助列和列之间的数据是根据tab键分隔的,1楼的数据是根据“|”分隔的,改一下就行了 |
||||
-- 作者:cnsjroom -- 发布时间:2021/11/26 10:09:00 -- 回复:(有点蓝)帮助列和列之间的数据是根据tab键分隔... 老师我参照操作了下 运行效果如图(红色部分因为没有|符号 所以没有正确拆分 老师有没有办法呢 我试过换行符 回车符 都没有行) 如果正确拆分之后,又该怎么写入对应的列名下的值呢?
当前代码如下: Dim s As String = FileSys.ReadAllText("C:\\Users\\Administrator\\Documents\\Foxtable项目\\文本数据\\text.txt", Encoding.Default) Dim Values1() As String = s.split(chr(13)) \'Output.Show(s.split("|").Length-1) Dim strs As String = s strs = strs.Replace(vblf,"") Dim rs() As String = strs.Split(vbcr) For i1 As Integer = 0 To s.split("|").Length-1 For i As Integer = 0 To rs.Length - 1 Dim cs() As String = rs(i).Split("|") If s.split("|").Length-1 = 21 Then strs = strs.Replace(vbcr,"|") End If output.Show(cs(i1)) Next Next 文件内容如下: 列名和临时表生成代码: Dim Multi As String = "账号|户名|交易日期|主机日期|交易时间|交易码|交易名称|借贷标记|交易金额|账户余额|营业机构|账务机构|交易柜员|授权柜员|柜员流水|现转标志|摘要代码|对方账号|对方名称|对方行号|对方行名" Dim Values() As String Values = Multi.split("|") Dim dtb As New DataTableBuilder("统计") For Index As Integer = 0 To Values.Length - 1 Output.Show(Values(Index)) dtb.AddDef(Values(Index), Gettype(String), 32) Next dtb.Build() [此贴子已经被作者于2021/11/26 10:10:32编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2021/11/26 10:15:00 -- Dim s As String = FileSys.ReadAllText("C:\\Users\\Administrator\\Documents\\Foxtable项目\\文本数据\\text.txt", Encoding.Default) Dim Values1() As String = s.Replace(vbcr,"").split(vblf) For i As Integer = 0 To Values1.length - 1 Dim cs() As String = Values1(i).split("|") For i1 As Integer = 0 To cs.Length-1 output.Show(cs(i1)) Next Next
|
||||
-- 作者:cnsjroom -- 发布时间:2021/11/26 10:21:00 -- 回复:(有点蓝)Dim s As String = FileSys.ReadAllT... 谢谢老师 精简的代码 获取得到数据之后 当前采用了临时表代码生成临时表 怎么匹配拆分的值到对应的列名下呢? Dim s As String = FileSys.ReadAllText("C:\\Users\\Administrator\\Documents\\Foxtable项目\\文本数据\\text.txt", Encoding.Default) Dim Values1() As String = s.Replace(vbcr,"").split(vblf) For i As Integer = 0 To Values1.length - 1 Dim cs() As String = Values1(i).split("|") For i1 As Integer = 0 To cs.Length-1 output.Show(cs(i1)) Next Next 列名和临时表生成代码: Dim Multi As String = "账号|户名|交易日期|主机日期|交易时间|交易码|交易名称|借贷标记|交易金额|账户余额|营业机构|账务机构|交易柜员|授权柜员|柜员流水|现转标志|摘要代码|对方账号|对方名称|对方行号|对方行名" Dim Values() As String Values = Multi.split("|") Dim dtb As New DataTableBuilder("统计") For Index As Integer = 0 To Values.Length - 1 Output.Show(Values(Index)) dtb.AddDef(Values(Index), Gettype(String), 32) Next dtb.Build() [此贴子已经被作者于2021/11/26 10:22:45编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2021/11/26 10:24:00 -- 帮助里就有 |
||||
-- 作者:cnsjroom -- 发布时间:2021/11/26 15:29:00 -- 回复:(有点蓝)帮助里就有 不好意思 老师我按照帮助教程还是没有得到要领 当前代码如下: Dim Multi As String = "账号|户名|交易日期|主机日期|交易时间|交易码|交易名称|借贷标记|交易金额|账户余额|营业机构|账务机构|交易柜员|授权柜员|柜员流水|现转标志|摘要代码|对方账号|对方名称|对方行号|对方行名" Dim Values() As String Values = Multi.split("|") Dim dtb As New DataTableBuilder("统计") For Index As Integer = 0 To Values.Length - 1 Output.Show(Values(Index)) dtb.AddDef(Values(Index), Gettype(String), 32) Next dtb.Build() MainTable=Tables("统计") Dim s As String = FileSys.ReadAllText("C:\\Users\\Administrator\\Documents\\Foxtable项目\\文本数据\\text.txt", Encoding.Default) Dim Values1() As String = s.Replace(vbcr,"").split(vblf) For i As Integer = 0 To Values1.length - 1 Dim cs() As String = Values1(i).split("|") For i1 As Integer = 0 To cs.Length-1 \'output.Show(cs(i1)) Dim cs1() As String = cs(i1).Split("|") output.Show(cs1(0)) If cs1.Length = 21 Then \'output.Show(cs(i1)) For Each c As DataCol In DataTables("统计").DataCols \'output.Show(c.name) Dim dr As DataRow = DataTables("统计").Addnew() dr(c.name) = cs1(0) \'dr("第二列") = cs(1) \'dr("第三列") = cs(2) \'dr("第四列") = cs(3) Next End If Next Next |
||||
-- 作者:有点蓝 -- 发布时间:2021/11/26 15:38:00 -- For i As Integer = 0 To Values1.length - 1 Dim cs() As String = Values1(i).split("|") Dim r As Row = Tables("统计").Addnew() For i1 As Integer = 0 To cs.Length-1 \'output.Show(cs(i1)) r(i1) = cs(i1) Next Next
|