です。

 

いきなり、やけど!(火傷でなくて大阪弁やで!)

 

WEBページで、データを入力して、ファイルに記録したり、読み込んで、表示したりするとき、めんどくさいし、ややっこしいよねー

 

ってことで、簡単に入出力ができるplを紹介しまーす、・・・

 

構成は、ファイル定義、入出力モジュールでなっています。

ファイルは一件(レコード)単位に読み書きするようになっていて(ファイル定義)、一件中の複数項目に項目名を設定してそこに更新して書き込みや参照ができる(入出力モジュール)感じになっています。

 

ファイル定義は

一件分(レコード)の項目名の設定

  項目名は連想形式で、実際の項目名を設定

   xxx{’氏名’}; 氏名という項目名にする

 

利用する項目名順番号を設定

 xxx{’0’}=”氏名”;

 xxx{’1’}=”年齢”; など

 

一件分(レコード)の項目数

 xxx=2; など

 

入出力モジュールは

新規作成

FIL_CLE($FILE,$FLOCK,$FILCNT,%FREC)

追加書込み

FIL_ADD($FILE,$FLOCK,$FILCNT,%FREC)

置換書込み

FIL_REP($FILE,$FLOCK,$FILCNT,%FREC)

削除

FIL_DEL($FILE,$FLOCK,$FILCNT,%FREC)

レコード位置指定読込み

READ_REC($FILE,$FLOCK,$FILCNT,%FREC)

順次読込み

READ_SEQ($FILE,$FLOCK,$FILCNT,%FREC)

指定項目検索読込み

READ_KEY($FILE,$FLOCK,$FILCNT,$KEY_F,$KEY_D,%FREC)

 

以上だけです、

これだけあれば、だいたいいけるし!

 

それから、ファイルは各モジュール単位でファイルの排他ロックがかかるので、一応安心なので!

 

 

では、内容の詳しめの説明とplモジュールをりようし、各機能を取り入れた、サンプルCGIを紹介しよーと思いますーーーーー。

 

みんな、サンプルをまねして、自分用に利用しましょーーーーー。

 

!!!!!説明!!!!!

#########ファイルシステム モジュール
######### 予約語定義
##読込データ格納用
#    %READ_DAT = "";
##書込データ格納用
#    %WRITE_DAT = "";
##レコード位置
#    $R = 0;
#    $REC_POINT = 0;
##forループカウント
#    $i;
#    $iF;
##一時処理用レコード格納用へ引渡用中間項目
#    %FREC = "";
##### 各項目定義名はシステムで利用中

 


###### ファイル定義

# ファイル名 xxxxxxx

 ファイル名は任意、実ファイルの拡張子無し
###一時処理用レコード格納用実ファイル xxxxxxx.txt....拡張子は必ずtxtとする
#ロック用    xxxxxxxic.txt..排他ロック制御用
#                                                                    ファイル名末尾に ic.txt を付加
#                                                                    あらかじめこの2ファイルを空作成しておく
# 項目名は任意に設定
#  利用するファイルごとにファイル定義する
# 定義した連想項目に読込データ格納用$READ_DATから
#  処理対象レコードをMOVE(サブルーチン)して処理後に書込データ格納用%WRITE_DATへ
# MOVE(サブルーチン)して書込する

#############

#全データの内容=任意に決めた連想形式の項目に1レコード分格納(1件分)
#    %xx一意名Axx = "";

#連想形式でレコードフィールドの格納場所を定義する引数1=項目名
#
#$xx一意名Axx{'nnnnnnnA'} = ""; 第一フィールド
#$xx一意名Axx{'nnnnnnnB'} = ""; 第二フィールド
#$xx一意名Axx{'nnnnnnnC'} = ""; 第三フィールド
#$xx一意名Axx{'nnnnnnnD'} = ""; 第四フィールド
#
#一件分のフィールドを定義    以下項目数分のフィールドを定義
#
#
#
#連想形式で上記と同じレコードフィールドに名称を定義します
# { }内引数はフィールド名順に番号で設定します

#利用項目名セット
#    $xx一意名Axx{'0'} = "nnnnnnnA"; 第一フィールドの名称を{'0'}に格納
#    $xx一意名Axx{'1'} = "nnnnnnnB"; 第二フィールドの名称を{'1'}に格納
#    $xx一意名Axx{'2'} = "nnnnnnnC"; 第三フィールドの名称を{'2'}に格納
#    $xx一意名Axx{'3'} = "nnnnnnnD"; 第四フィールドの名称を{'3'}に格納

#    以下項目数分を定義

#フィールド項目の個数を一意名にセット
#    $xx一意名Bxx = n;#項目数

####################ここまで 使用ファイルごとに作成##################################

#    クリエート書込み用サブルーチン:FIL_CLE($FILE,$FLOCK,$FILCNT,%FREC); 引数は任意に設定
#引数 $実ファイル名、$ロック用実ファイル名、項目数、引渡用中間項目(%FREC)


#引渡用中間項目の内容を新規書込みされる

#    追加書込み用サブルーチン:FIL_ADD($FILE,$FLOCK,$FILCNT,%FREC); 引数は任意に設定
#引数 $実ファイル名、$ロック用実ファイル名、項目数、引渡用中間項目(%FREC)


#引渡用中間項目の内容が追加書込みされる
    
#    レコード指定読込み用サブルーチン:READ_REC($FILE,$FLOCK,$FILCNT,%FREC); 引数は任意に設定
#引数 $実ファイル名、$ロック用実ファイル名、項目数、引渡用中間項目(%FREC)


#$REC_POINT に処理するレコード位置をセット後に実行

#    順次読込み用サブルーチン:READ_SEQ($FILE,$FLOCK,$FILCNT,%FREC);引数は任意に設定
#引数 $実ファイル名、$ロック用実ファイル名、項目数、引渡用中間項目(%FREC)


#$REC_POINT に処理するレコード位置をセット後に実行、実行後は+1されているので注意
                
#    キー指定読込み用サブルーチン:READ_KEY($FILE,$FLOCK,$FILCNT,$KEY_F,$KEY_D,%FREC);引数は任意に設定
#引数 $実ファイル名、$ロック用実ファイル名、項目数、キーフィールド名、キー内容、引渡用中間項目(%FREC)


#キー項目の内容がヌルデータになるまで検索する(ヌルデータがファイルの終端と判断)


#$REC_POINT に処理するレコード位置をセット後に実行
                
#    置換書込み用サブルーチン:FIL_REP($FILE,$FLOCK,$FILCNT,%FREC);
#引数 $実ファイル名、$ロック用実ファイル名、項目数、引渡用中間項目(%FREC)


#引渡用中間項目の内容が置換書込みされる


#$REC_POINT に処理するレコード位置をセット後に実行

#    削除用サブルーチン:FIL_DEL($FILE,$FLOCK,$FILCNT,%FREC);
#引数 $実ファイル名、$ロック用実ファイル名、項目数、引渡用中間項目(%FREC)


#削除は実際に削除されず、フィールドデータの先頭に 削除 文字が追加される「abc..」~「削除abc..」

#    以上

######################################################################################

 

えー?????

読んだだけだと、全然わからへーーーn

という人   しらんけど!

とゆーことで、サンプルCGIとplをダウンロードして実際にいろいろやってみてちょーだい

で。。。

 

ダウンロードのリンクをクリックしましょー

 

                 

 

では、また何かあったら紹介しますから。。

フォローしてね!