以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 读取文本数据第一行生成临时表,并写入文本数据行到临时表,文本数据行写入项目 但是行的值不写入 有没有办法修正呢? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=175178) |
||||
-- 作者:cnsjroom -- 发布时间:2022/2/23 0:08:00 -- 读取文本数据第一行生成临时表,并写入文本数据行到临时表,文本数据行写入项目 但是行的值不写入 有没有办法修正呢? 读取文本数据第一行生成临时表,并写入文本数据行到临时表,红色部分代码注释掉的话 文本数据行和行的值会正常写入项目,不注释掉的话 文本数据行写入项目 但是行的值不写入 有没有办法修正呢?
红色部分代码拟实现的是 如果文本的列值含有 时间 就新增一个 日期列 属性为date 如果含有日期 就将该列属性直接定义位date
当前代码如下: Dim dlg As new OpenFileDialog End If
[此贴子已经被作者于2022/2/23 1:29:25编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2022/2/23 8:40:00 -- For i1 As Integer = 0 To math.min(cs.Length-1, Tables("统计").cols.count - 1) Dim d As Date = cdate(bb) r(i1) = cs(i1) End If |
||||
-- 作者:cnsjroom -- 发布时间:2022/2/23 10:21:00 -- 回复:(有点蓝) For i1... Dim dlg As new OpenFileDialog Next
.NET Framework 版本:4.0.30319.42000
|
||||
-- 作者:有点蓝 -- 发布时间:2022/2/23 10:38:00 -- If cs.Length = Tables("统计").cols.count Then Dim bb As String=cs(i1).trim() If bb > "" Then If bb.Contains("时间") Then Dim d As Date = cdate(bb) r("日期")= Format(d, "yyyy-MM-dd") else
r(i1) = cs(i1) End If End If End If |
||||
-- 作者:cnsjroom -- 发布时间:2022/2/23 11:20:00 -- 回复:(有点蓝) ... 还得麻烦老师一下 现在是不报错了 但是数据行是空值
Dim dlg As new OpenFileDialog |
||||
-- 作者:有点蓝 -- 发布时间:2022/2/23 11:22:00 -- 请把数据文件发上来测试 |
||||
-- 作者:cnsjroom -- 发布时间:2022/2/23 12:22:00 -- 回复:(有点蓝)请把数据文件发上来测试 麻烦老师
因为违法时间是字符 不便于实现按日期筛选 所以在临时表中新增了一个日期列 且属性为date 想自动把违法时间转换成日期 然后实现按日期进行筛选 |
||||
-- 作者:有点蓝 -- 发布时间:2022/2/23 13:51:00 -- Dim dlg As new OpenFileDialog dlg.Filter = "文本文件|*.txt" \'Tables("统计").StopRedraw If dlg.ShowDialog = DialogResult.OK Then If DataTables.Contains("统计") Then \'如果表C已经加载 DataTables.Unload("统计") \'卸载表C End If Dim Multi As String Dim strs As String = FileSys.ReadAllText(dlg.FileName, Encoding.Default) Dim Values11() As String = strs.Replace(vbcr,"").split(vblf) For i1 As Integer = 0 To 0 Dim rs As String = Values11(0) For i As Integer = 0 To 0 Dim cs() As String = rs.Split(vbtab) output.Show(cs(0)) Multi = cs(0) Next Next 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)) If Values(Index).Contains("时间") OrElse Values(Index).Contains("日期") Then dtb.AddDef("日期", Gettype(Date)) End If dtb.AddDef(Values(Index), Gettype(String), 255) Next dtb.Build() For i As Integer = 1 To Values11.length - 1 Dim cs() As String = Values11(i).split("|") Dim r As Row = Tables("统计").Addnew() output.show(cs.Length-1) For i1 As Integer = 0 To math.min(cs.Length-1, Tables("统计").cols.count - 1) Dim bb As String=cs(i1).trim() If bb > "" Then If Values(i1).Contains("时间") OrElse Values(i1).Contains("日期") Then Dim d As Date = cdate(bb) r("日期")= Format(d, "yyyy-MM-dd") Else r(i1) = cs(i1) End If End If Next Next End If \'Tables("统计").ResumeRedraw
|
||||
-- 作者:cnsjroom -- 发布时间:2022/2/23 14:15:00 -- 回复:(有点蓝)Dim dlg As new O... 老师 现在日期列会根据时间列来获取值 但是数据行错位了呢 还得麻烦老师辛苦下 谢谢!
此主题相关图片如下:12.png |
||||
-- 作者:有点蓝 -- 发布时间:2022/2/23 14:21:00 -- 多增加了一个列 |