NDBS 23
NDBS No.23 主表をクループ化して分類
c:\grouping.exe
データベースを検索してクループ化し、CSV形式のファイルに出力
NDBS23-1
概要
固定長テキストファイルを定められたキーでグループ別に分類して、
それぞれ別個の CSVファイルか、固定長テキストファイルを作成します。
適用情報記述ファイル
groupfom.txt
の指示により行います。
絞り込みをして特定のレコードのみをグループ化の対象にできます。
グループ化数は
20
までです
NDBS23-2
準備とプログラムの起動
(1)
準備
適用情報を記述したテキストファイル
groupfom.txt
が作業場所の
form
の下に必要です
適用情報ファイル名が異なる場合はキーから入力することができます。
ここでは住所録の主表
D:\tuser\ndbtrain\data\adrsdata
の中の、
女性だけのレコードについて、体重の値を重さにより3っのグループに分け、
CSV ファイルに出力させてみます。
教科書例題の住所録の主表では
性別は
45
バイト目から
1
バイトで、男性は
1
で、女性は
2
で記録されています。
体重は
177
バイト目から
5
バイトで記録されています。
作業場所は
D:\tuser\ndbtrain
とします。
適用情報を記述したテキストファイル
groupfom.txt
の作成
このファイルの名称は別の名前でも構いませんが
MS-DOS
形式でなければなりません
ファイル名は
8
バイト以下、拡張子は
3
バイト以下にして下さい。
ファイル名は半角英数文字にして下さい。
このファイルの作成はテキストエディタで次のように記述します。
このファイルは既に作業場所の
form
の下に保存されており、下記のように記述されています。
適用情報を変えたい場合はこのファイルを叩き台に訂正して下さい。
適用情報記述ファイル
groupfom.txt
の記述内容
NDBデモ用個人住所録から体重区分でグループ化
主データファイルベース名 ,
data\adrsdata
主データレコードサイズ バイト ,
320
出力グループファイル名 Max 6 bytes ,
wgtgrp
区切りコード 0 なし 1 空白 2 カンマ ,
2
レコード番号付加 0 なし あり 1 ,
1
A:
グループ数(最大 20) ,
3
取出位置、長、引数(文字列は""で囲む)をグループ数だけ記述
グループ1
体重 ,177 ,5 ,30 , 49
グループ2
体重 ,177 ,5 ,50 , 69
グループ3
体重 ,177 ,5 ,70 ,220
B:
条件有無 1 or 0 ,
1
判定式 要素記号 a b c d e f g h i k 論理記号 * and + or
a
要素数(最大 10 ) ,
1
要素記号,取出位置,長,値を記述
a, 45, 1, 2, 2
C:
出力グループファイルへの出力項目数,
5
出力項目名、取り出し位置、バイト数
氏 名 , 9, 14
年 齢 , 42, 3
性 別 , 45, 1
身 長 , 125, 5
体 重 , 177, 5
記述上の注意
空色の部分だけを訂正して下さい。
適用情報記述ファイルは改行されたデータから成ります。
余分な改行をしないで下さい。
文字列の引数と出力項目名以外は
必ず半角文字で入力して下さい。
文字列の引数は
半角の
"
で囲んで下さい。
絞り込み条件
の記述方法は
NDBS 18 絞込・任意項目出力
を参照して下さい。
(2)
起動
実行プログラムは
c:\ndbs\grouping.exe
です。
作業場所に
メニューショートカット NDBS3
を作成して、これをダブルクリックし、そのメニュー画面で、
23 RF をクループ化して分類出力
をダブルクリックして下さい。。
メニューの組み込み方法は、
NDBS 38 業務実行メニュー
を参照して下さい。
プログラム
grouping.exe
が
form\groupfom.txt
を引数として呼び出され、
NDBS23-1図
に示す
MS-DOS
の黒い画面が現れます。
NDBS23-1図
|
|
NDBS23-3
使用方法
NDB Grouping
のメッセージが表示されます。
適用情報記述ファイル名は form\groupfom.txt です。
このファイル名で良いですか。 【はい】 --> 'Enter' 【いいえ】 --> '0 Enter'
のメッセージに対しては
Enter
と入力します。
適用情報記述ファイルのパス名が
form\groupfom.txt
と異なる場合は
'0 Enter'
と入力してから、
実際の適用情報記述ファイルのパス名を入力します。
適用情報が
NDBS23-1図
に示すように表示されます。
上記の条件でクループ化を行う 'Return' 中止する '0 Enter'
のメッセージに対しては
Enter
と入力します。
グループファイル作成中
のメッセージに続いて、
NDBS23-1図
の後半に示すようなグループ化した結果を示すメッセージが表示されます。
グループファイル作成作業終了
のメッセージに対して
Enter
と入力します。
終了しても画面の下のタスクバーに
MS-DOS
の窓が残る場合があります。
このよう場合は強制的に終了させて下さい。
グループ化されたファイルの一つ
wgtgrp01.csv
を見ますと次のような結果になりました
体重が 30 kg から 49 kg (正確には 50 kg 未満)の人の
13
レコードが出力されたことがわかります。
CSVファイルなので、次のプログラムでhtml文書にするとか、表計算ソフトに読み込んで利用してください。
NDBS 21 CSV から html 文書を出力
なお、
wgtgrp00.csv
には各グループに所属した全データが出力されます。
出力例
1,?? ? , 18,2,161.1,48 , 1
58,吉田 由?子 , 69,2,144.3, 48.0, 1
64,伊藤 和? , 69,2,144.3, 48.0, 1
66,加藤 淳? , 68,2,154.7,48 , 1
71,三田 恵? , 65,2,141.3, 42.1, 1
76,岡江 久?子 , 69,2,144.3, 48.0, 1
79,工藤 喜?子 , 59,2,153.2, 48.0, 1
92,水谷 洋? , 24,2,152.8, 45.0, 1
113,萩野 知? , 59,2,154.7, 47.8, 1
143,田口 玲? , 64,2,141.7, 42.0, 1
145,佐藤 久?子 , 68,2,154.7,42 , 1
180,大島 聡? , 29,2,151.9, 47.9, 1
197,渡邊 絵? , 40,2,151.2, 40.8, 1
RF. 形式ファイルに出力させる場合
上記の例は
CSV形式
で出力しましたが、
固定長RF.
すなわち
NDBS の主表
の形式で出力する場合は、
適用情報記述ファイル
groupfom.txt
の
4
行目を次のようにします。
区切りコード 0 なし 1 空白 2 カンマ ,
0
または
区切りコード 0 なし 1 空白 2 カンマ ,
1
すなわち区切りコードを
0
か
1
にしておくと
固定長RF.
形式で出力します。
レコード長は各出力項目長を自動的に加算し、
その値を超える数値を入力させメッセージが現れますので、
その値を超えて、かつ
40, 80, 160
など、切りの良い数値を入力して下さい。