注册 登录
编程论坛 VB6论坛

VB6根据LIST多行内容筛选CSV包含字段的行,并生成新文件

alickluo 发布于 2023-03-09 22:39, 609 次点击

各位老师:
请问一下,VB6如何根据LIST多行内容筛选CSV包含字段的行,并生成新文件

例如LIST1中有多行字段
A034ADI
3124IYR
4494AAT
......

查到a.csv中某列中包含LIST1字段中任意字段的行内容,并汇总生成一个b.CSV文件

谢谢!
2 回复
#2
冬瓜汤2023-03-10 00:08
方案1:
1、假设你的csv是严格的 有规律数据的 csv文件,如果你的csv文件只有数据,没有标题行,那手动增设一行标题行(字段名)。
2、用 ado.recordset 查询载入 csv数据(可以百度一下,ado.conn 的oledb provider  对csv/text的字符串写法)
3、假设 List是单列多行。循环 把list每一项 去和 recordset 那个匹配 字段列 进行 比对,如果比对符合   recordset.bookmark作一个标记
4、list所有行都 比对 完成后。recordset.filter 对bookmark标记,进行 过滤
5、过滤完的 recorset 就是你要的数据。save成为 ado.stream,然后 stream 保存为 csv文件。
#3
风吹过b2023-03-10 09:14
方案2
你的 csv 不涉及到 行内分割问题,如果纯VB6处理,我想到的方法
list1分解到数组里
循环
读一行,
是否为空行,是,按要求决定是否写入,不是则继续           这个判断是优化空行的处理速度
  使用循环 在这一行中搜索到 list每一行的内容,
    找到,写入新文件,中断查找          这里一定要在写入新文件后中断查找,否则会导致写入重复数据
  未找到,继续,直接查找完所的内容
继续循环,直到文件结束

1