我有一个有100行8列的.csv文件。每一行看起来像下面的内容
0,0,0,0,0,0,0,5
0,1,0,0,1,0,0,6
我需要评估每个领域。如果field =1(在第1行和第7行之间),我必须将该行的第8列值写入文本框;如果field =0,则不对该行写入任何内容。
我对如何评估每个领域感到非常困惑。
发布于 2013-01-16 18:15:36
我在Jet-Driver中使用ADO。这非常简单,导入的结果是一个您可以轻松导航的ADO.Recordset。
Dim cnCSV As ADODB.Connection
Set cnCSV = New ADODB.Connection
cnCSV.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Chr(34) & lFilePath & Chr(34) & ";Extended Properties=" & Chr(34) & "text;HDR=Yes;FMT=Delimited" & Chr(34) & ";"
cnCSV.Open
Dim p_ImportRst As ADODB.Recordset
Set p_ImportRst = New ADODB.Recordset
lstrSQL = "SELECT * FROM [" & lFileName & "]"
Set p_ImportRst = cnCSV.Execute(lstrSQL)
发布于 2013-01-12 09:00:28
这是一种应该有效的方法。伪代码...
dim vData() as variant
dim nHandle as integer
dim sTextLine as string
nHandle = FreeFile
open "c:\filename.csv" for input as nHandle
Do While Not EOF(nHandle)
Line Input #nHandle, sTextLine '// Read line into variable.
' break up the line into multiple pieces
vData = split(sTextLine, ",")
' your criteria here
if vData(0) = 0 then ...
if vData(1) = ...
Loop
Close #nHandle
发布于 2013-01-13 14:15:02
使用"split“
“根据分隔符(如逗号或空格)将字符串拆分为单独的元素,并将结果元素存储在从零开始的数组中”
http://www.vb6.us/tutorials/vb-string-array-functions-split-join-filter
创建可变大小的数组。使用lbound和ubound来获得它的大小,执行for循环并将数字相加。
https://stackoverflow.com/questions/14266311
复制相似问题