我有一個.csv文件,有100行和8列。每行看起來像下面的東西VB6 CSV搜索visualbasic
0,0,0,0,0,0,0,5
0,1,0,0,1,0,0,6
我需要評估每個字段。如果字段= 1(在第1行和第7行之間),則必須將該行的第8列值寫入文本框,如果該字段= 0,則不會爲該行寫入任何內容。
我很困惑如何評估每個領域。
我有一個.csv文件,有100行和8列。每行看起來像下面的東西VB6 CSV搜索visualbasic
0,0,0,0,0,0,0,5
0,1,0,0,1,0,0,6
我需要評估每個字段。如果字段= 1(在第1行和第7行之間),則必須將該行的第8列值寫入文本框,如果該字段= 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
使用「分裂」
「將字符串分割成基於一個定界符(如逗號或空間)分開的元件,並存儲所得到的元件在零基於陣列」
http://www.vb6.us/tutorials/vb-string-array-functions-split-join-filter
創建一個可變大小的數組。使用lbound和ubound來獲得大小,做循環和添加數字在一起。
我使用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 aryFileData(100,8)As Integer」,然後將數據讀入它。如果你問如何去做,你需要先努力。你有什麼,或者你有什麼困難? – jac