ADP
Programming Language ADP

Japanese

Freecode

Sourceforge.net

SourceForge.JP

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.