第一步,要搞清楚你要什么?
第二步,你才能写出它。
你说请问如何读取配置文件,文件格式为csv.
如果你想读配置文件,最好用INI,如果你觉得INI有限制(64K,每一行长度有限制等等)可以自已搞一个解决方案
如果你想读csv,这又是另一个问题。
csv文件的本质,实际上一个表,一个二组数组。
问题的抽象应该是这样的:
怎样保存一个二组数组到一个串。
怎样读取一个二组数组从一个串。
'********************************************
Public Function Read2DArrayFromString( _
vnt2dArray, StrVariant As String, _
Optional Str1DFlag As String = ",", _
Optional Str2DFlag As String = vbCrLf) As Long
'目的 :从一个串得到一个2维数组
'相关模块:
'输入:
'返回:如果操作成功完成,返回0,否则返回Err.Number
On Error GoTo PROC_ERR
Dim lngErr As Long
Dim lngLoop As Long
Dim strOneArray As String
Dim strAllArray As String
'[参数有效性检测]
If StrVariant = "" Then
lngErr = -1: GoTo PROC_EXIT
End If
'[通过参数有效性检测,处理正事]
Dim avnt1DArray, avnt2DArray, avntTemp
ReDim avnt2DArray(0)
avnt1DArray = Split(StrVariant, Str2DFlag)
For lngLoop = 0 To UBound(avnt1DArray)
If avnt1DArray(lngLoop) <> "" Then
avntTemp = Split(avnt1DArray(lngLoop), Str1DFlag)
ReDim Preserve avnt2DArray(lngLoop)
avnt2DArray(lngLoop) = avntTemp
End If
Next
PROC_EXIT:
vnt2dArray = avnt2DArray
Read2DArrayFromString = lngErr
Exit Function
PROC_ERR:
lngErr = Err.Number
Debug.Print "Read2DArrayFromString.Err(" & Err.Number & "):" & Err.Description
GoTo PROC_EXIT
End Function
dim vnt2dArray
Dim lngRet As Long
Dim strVar As String
strVar =conTest
lngRet = mdlUtilities.Read2DArrayFromString(vnt2dArray, strVar, ",")
if lngRet=0 then
dim lngWhichRow ,lngWhichCol
'显示第X行第Y列的元素
msgbox vnt2dArray(lngWhichRow)(lngWhichCol)
end if
'在这个例子
'vnt2dArray(0)(0)="a"
'vnt2darray(0)(1)="b"
'vnt2dArray(1)(0)="a1"