![]()
![]() ![]() インターシステムズ(日) └日本語ドキュメント インターシステムズ(US) (有)エムブイビイ ダイナシステム(株) Googleグループ(英語) Googleグループ(日本語) George James Software cache'infoアーカイブ 【広告】
|
|
氏名 | 住所 | 生年月日 | メール |
---|---|---|---|
大谷 真二 | 東京都文京区音羽49-31 | 1955/06/13 | mailaddress@hoopz.ne.jp |
このような形式のCSVファイルからデータを取得しキャシェーのデータベースに格納します。CSVデータのサンプルとして1万件のデータを含むファイルを使用します。
![]() (LHA圧縮 391KB) このファイルを解凍してc:\に保存してください。 |
それでは早速このファイルにキャシェーから開いてみましょう。キャシェー・ターミナルを開きます。
USER> |
まずはファイルを開きます。Openコマンドを使用します。
USER> Set file="C:\data.csv" USER> Open file USER> |
ではデータを読み込んでみましょう。UseコマンドとReadコマンドを使用します。
USER> Use file Read data USER> |
これでファイルの先頭1行が変数dataに格納されました。Writeコマンドで確認してみましょう
USER> Write data 大谷 真二,東京都文京区音羽49-31,1955/06/13,mailaddress@hoopz.ne.jp USER> |
このようにわずか3行のコマンド、48文字でファイルからデータが読み取れます。
あとは読み込んだ内容をグローバルに格納すればデータベースの完成です。
データベース構造は次のようなものを作成します。
格納グローバル名(SQLでいうテーブル名)を^Personとします。グローバル名なので先頭に^記号がつきます。
その下に各個人のIDを持ちます。ここでは読み込んだ順番に連番を振り当てていきます。
その下に各個人のデータ、名前・住所・生年月日・メールアドレスをそれぞれ
実際にグローバルにデータを格納してみましょう。
まずは読み込んだ一行のデータから、カンマで区切られたデータを取得します。
USER> Write $Piece(data,",",1) 大谷 真二 USER>Write $Piece(data,",",2) 東京都文京区音羽49-31 USER>Write $Piece(data,",",3) 1955/06/13 USER> |
このデータをグローバルに格納します
USER>Set ^Person(1,"Name")=$Piece(data,",",1) USER>Set ^Person(1,"Address")=$Piece(data,",",2) USER>Set ^Person(1,"Birth")=$Piece(data,",",3) USER>Set ^Person(1,"Mail")=$Piece(data,",",4) USER> |
グローバルの内容を確認してみましょう
USER> ZWrite ^Person ^Person(1,"Name")= USER> |
ではこの操作をルーチンにまとめてみましょう。
LOAD(file) ; CSVファイル読み込み Open file Use file For i=1:1 Read data Quit:data="" Do .Set ^Person(i,"name")=$Piece(data,",",1) .Set ^Person(i,"address")=$Piece(data,",",2) .Set ^Person(i,"birth")=$Piece(data,",",3) .Set ^Person(i,"mail")=$Piece(data,",",4) Close file Quit |
このような感じになります。このルーチンをCSVという名前で保存・コンパイルしてください。
ルーチン作成方法
ルーチンの保存・コンパイルが終わったら、早速ルーチンを実行してみましょう。
キャシェー・ターミナルを開きます。
次のように入力して、リターンキーを入力してください。
USER> DO LOAD^CSV("C:\data.csv") |
数秒で次の USER>
という表示が出てきたと思います。このわずか数秒の間に、キャシエは一万件のデータをファイルから読み取り、データベースに格納したのです。
本当に格納されたかどうか確認してみましょう。
USER> ZW ^Person |
このようにコマンドを入力すると、次々とデータが表示されます。すべて表示が終わるにはしばらく時間がかかります。
どうでしょうか? 本当に1万件登録されているのが確認できたでしょうか?