Tips - WSH

【TOP】

ADOでCSVを読み込む
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() ' CScript.exe で実行時、空行を出力 If InStr(WScript.FullName, "cscript.exe") > 0 Then WScript.Echo "" End If Loop Rst.Close() Con.Close() Set Rst = Nothing Set Con = Nothing
【戻る】