【问题标题】:VB6 CSV search visualbasicVB6 CSV 搜索 visualbasic
【发布时间】:2013-01-10 20:03:54
【问题描述】:

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

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

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

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

我对如何评估每个字段感到非常困惑。

【问题讨论】:

  • 我建议使用二维数组Dim aryFileData(100, 8) As Integer,然后将数据读入其中。如果你问怎么做,你需要先努力。您有什么问题,或者您在哪里遇到问题?

标签: arrays csv vb6 evaluate


【解决方案1】:

我将 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)

【讨论】:

    【解决方案2】:

    这是一种应该可行的方法。伪代码...

    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
    

    【讨论】:

      【解决方案3】:

      使用“拆分”

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-09-08
        • 1970-01-01
        • 1970-01-01
        • 2022-01-15
        • 1970-01-01
        • 1970-01-01
        • 2021-10-13
        相关资源
        最近更新 更多