Microsoft Text Driver という ODBC ドライバを使って、CSV ファイルを読み込んでみます。
ADO を使ったことがある方であれば、RDBMS との違いを意識せずに使用することができます。
以下は読み込む CSV ファイルです。1 行目はカラム名になります。
[friends.csv]
Name,Birthday,BloodType,Age,Hobby
Angela,10/3,A,23,cooking
Robert,4/5,B,18,football
John,7/6,A,28,guitar
William,3/12,O,25,swimming
Mary,9,20,AB,23,travel
Catherine,12/3,B,21,knitting
Michael,10/15,A,27,boat
上記の CSV ファイルを読み込み、表示します。
(CScript で実行した場合にレコードの境目が分かりづらいので、空行を挿入するようにしています。)
Option Explicit
Const adOpenForwardOnly = 0
Const adOpenKeySet = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3
Const adOpenUnspecified = -1
Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3
Const adLockBatchOptimistic = 4
Const adLockUnspecified = -1
Dim Con, Rst, fileDir, fileName
fileDir = "."
fileName = "friends.csv"
Set Con = WScript.CreateObject("ADODB.Connection")
Set Rst = WScript.CreateObject("ADODB.Recordset")
Con.ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)};DefaultDir=" & fileDir & ";"
Con.Open()
Rst.CursorType = adOpenForwardOnly
Rst.LockType = adLockReadOnly
Rst.Open "SELECT * FROM " & fileName, Con
Do While Not Rst.EOF
WScript.Echo "名前:" & Rst("Name") & vbCrLf & _
"誕生日:" & Rst("Birthday") & vbCrLf & _
"血液型:" & Rst("BloodType") & vbCrLf & _
"年齢:" & Rst("Age") & vbCrLf & _
"趣味:" & Rst("Hobby")
Rst.MoveNext()
If InStr(WScript.FullName, "cscript.exe") > 0 Then
WScript.Echo ""
End If
Loop
Rst.Close()
Con.Close()
Set Rst = Nothing
Set Con = Nothing