注册 登录
编程论坛 VB6论坛

关于读取CSV文件的问题

huangyz_xy 发布于 2019-11-07 14:39, 2093 次点击
我有一个字段很多的CSV文件(超多500列),要导入到ACCESS中去处理,但是我只需要其中的部分列,但是这部分列在第255列以后,现在用代码是读取不了255列以后的列的,怎么办?
For i = 1 To rsData.RecordCount
                rst.AddNew
                k = 0

                For Each Fn In rst.Fields

                    For Each Fn1 In rsData.Fields

                        If Fn.name = Fn1.name Then

                            rst.Fields(Fn.name) = CStr(rsData.Fields(Fn1.name))
                           
                            k = k + 1

                            Exit For

                        End If

                    Next
                Next

                rst.Update

                rsData.MoveNext
                  
            Next i
3 回复
#2
风吹过b2019-11-07 16:06
那就自己 解析 CSV 文件吧
CSV文件是一个文本文件,你用记事本打开就可以看到。

CSV文件:每条记录是一行,每个字段之间,是用逗号分隔。
按这个规则写代码。
打开文件,读一行。分解成数组(标题)。查找所需要的字段的序号,同时生成 SQL命令 增加新记录的字段列表,保存。
循环:
读一行,分解成数组。根据前面所查询到的字符的序号,生成SQL命令 增加新记录的 数据部分, 组合生成 SQL 命令,提交执行。
组合成数据部分时,需要判断得到的数组,有没有这么元素,没有的元素,一律填空白或0值。



#3
huangyz_xy2019-11-09 21:45
回复 2楼 风吹过b
我还真想挑战一哈,但是有个问题,如何确定为换行?另外按照上个帖子你告诉的方法,成功解析了HTML文件,谢谢!
#4
风吹过b2019-11-10 22:33
CSV 本身是一个文本文件,一行数据,如果用WORD打开,则表示为一个段落,使用标准的 vbcrlf 分隔。
读取文本文件时,
line input 读到的就是一行。
不需要自己再去分行。

如果你一次性使用二进制读取文件,或者使用FSO读取全部,那就使用 split(S,vbcrlf) 进行分解。
1