Loading
CSVファイルの入出力
CSVファイルの読み込み1(ヘッダなし)
CSVファイルの読み込み例1(rcsvf.p 32ビットWindowsで動作)
rcsvf@("rcsv1.csv").prtn,next;
CSVファイル(rcsv1.csv)を配列に読み込んで表示します。
実行例
{都道府県, 人口}
{東京都, 13,161,751}
{神奈川県, 9,049,500}
{大阪府, 8,862,896}
CSVファイルの読み込み2(ヘッダあり)
CSVファイルにヘッダがある場合、csvfhを使用します。
CSVファイルの読み込み例2(rcsvfh.p 32ビットWindowsで動作)
,rcsvfh@("rcsv1.csv").prtn,next;
CSVファイル(rcsv1.csv)を連想配列に読み込んで表示します。最初の一行がキーになります。
2行目以降が値になります。
実行例
{都道府県 => 東京都, 人口 => 13,161,751}
{都道府県 => 神奈川県, 人口 => 9,049,500}
{都道府県 => 大阪府, 人口 => 8,862,896}
CSVファイルの出力(ヘッダなし)
ADPでは連想配列をCSVに変換する機能があります。この機能とファイル関連の述語とを組み合わせてCSVファイルを作成します。
CSVファイルへの出力例1(lib\wcsv.P 32ビットWindowsで動作)
+db("Driver={Microsoft Access Driver (*.mdb)}; DBQ=sample.mdb");
#テストデーターの作成
,$rec1 == { "ID"=>1, "col1" => "aaa", "col2" => 20, "col3" => "2010/05/27 17:40:30"}
,$rec2 == { "ID"=>2, "col1" => "bbb", "col2" => 30, "col3" => "2010/05/27 17:40:30"}
,db.insert( $rec1, "sample_table")
,db.insert( $rec2, "sample_table")
;
#db の内容をCSVファイルへ出力
+fname('wcsv.csv');
,fname.fwrite(''),!;
,db.select@({},'sample_table').csv.logn(=fname),next;
#csvファイルの内容の表示
,fname.file.print;
CSVファイルへの出力部分は以下のコードになります。
+fname('wcsv.csv');
,fname.fwrite(''),!;
,db.select({},'sample_table', @rec),fname.fappendn(=$rec.csv),next;
実行例
D:\sample\lib>adp wcsv.p
1,aaa,20,2010-05-27 17:40:30
2,bbb,30,2010-05-27 17:40:30
CSVファイルの出力(ヘッダあり)
CSVファイルと同様に出力時にヘッダをつけることも出来ます。例では、DBから取得時のカラム名をヘッダに付けています。
CSVファイルへの出力例2(lib\wcsvh.P 32ビットWindowsで動作)
+db("Driver={Microsoft Access Driver (*.mdb)}; DBQ=sample.mdb");
#テストデーターの作成
,$rec1 == { "ID"=>1, "col1" => "aaa", "col2" => 20, "col3" => "2010/05/27 17:40:30"}
,$rec2 == { "ID"=>2, "col1" => "bbb", "col2" => 30, "col3" => "2010/05/27 17:40:30"}
,db.insert( $rec1, "sample_table")
,db.insert( $rec2, "sample_table")
;
#db の内容をCSVファイルへ出力
+fname('wcsv.csv');
+heder(1,$rec),fname.fwriten(=$rec.keys.csv),!;
+heder($,$),!;
,db.select({},'sample_table', @rec)
,times($c),heder($c,$rec),$rec.csv.logn(=fname),next;
#csvファイルの内容の表示
,fname.file.print;
CSVファイル出力は以下の部分になります。
+fname('wcsv.csv');
+heder(1,$rec),fname.fwriten(=$rec.keys.csv),!;
+heder($,$),!;
,db.select({},'sample_table', @rec)
,times($c),heder($c,$rec),$rec.csv.logn(=fname),next;
実行例
D:\sample\lib>adp wcsvh.p
ID,col1,col2,col3
1,aaa,20,2010-05-27 17:40:30
2,bbb,30,2010-05-27 17:40:30
Powered by ADP.