0

我有一个 .csv 文件,它有 100 行和 8 列。每行看起来像下面的东西

0,0,0,0,0,0,0,5 

0,1,0,0,1,0,0,6

我需要评估每个领域。如果字段 = 1(在第 1 行和第 7 行之间),我必须将该行的第 8 列值写入文本框,如果字段 = 0 则不为该行写入任何内容。

我对如何评估每个领域感到非常困惑。

4

3 回答 3

2

我将 ADO 与 Jet-Driver 一起使用。这非常简单,导入的结果是一个 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-16T10:15:35.883 回答
0

使用“拆分”

“根据分隔符(例如逗号或空格)将字符串拆分为单独的元素,并将结果元素存储在从零开始的数组中”

http://www.vb6.us/tutorials/vb-string-array-functions-split-join-filter

创建一个可变大小的数组。使用 lbound 和 ubound 来获取它的大小,执行 for 循环并将数字相加。

于 2013-01-13T06:15:02.347 回答
0

这是一种应该有效的方法。伪代码...

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-12T01:00:28.137 回答