VB读取CSV文件(30列,大概8000列)。采用逐行用Split函数读取的方法,存入30个组合框中,求提高效率方法

2024-11-30 11:28:29
推荐回答(1个)
回答1:

字符串处理是电脑中最耗时(而且耗内存)的一种操作,当数据量较大时所消耗的时间是以几何级数增长的,所以应该尽量避免一次性处理大量的文本数据。

csv本身是一种数据库格式,所以如果按数据库的方式来调用它,问题就简单多了,不但效率提高,用起来也很方便,你可以从中任意提取每行数据啦。下面是简单的用法举例(工程需引用ADO),其他的你自己补全:

Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
conn.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};DefaultDir=" & App.Path & "\" & Text10.Text
rs.Open "select * from " & Combo3.List(k), conn, 1, 1
Do Until rs.EOF
    '这里是对每行数据进行处理,rs(0)是第1列,rs(1)是第2列,依此类推
    rs.MoveNext
Loop
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing

通过改变SQL语句你就可以灵活处理csv中的数据啦。

如果使用数据控件(比如adodc)连接csv文件,再把组合框绑定到数据控件上,甚至连一行代码都不用写!