Microsoft Visual Basic 2.0 で,ISAMアクセスを可能にするファイル入出力プログラムです。このプログラムは[vbisam.bas]という、ひとつのコードモジュールに納められており、プロジェクトにこのファイルを追加するだけで利用できます。
今となっては、ほとんど利用価値はありませんが、Win3.1+VB2での開発では結構重宝しました。私のプログラミングスキルを知っていただけるかもしれません(笑)。
ソースコード公開中
【使い方 】
ダウンロードしたファイル(Vbisam.exe)を解凍(自己解凍)します。
Vbisam.bas
【プログラミング手順】
1.Visual Basic 2.0 のプロジェクトに、コードモジュールファイル[VBISAM.BAS]を追加する。
2.任意の宣言セクション又はプロシージャに、ISAMパラメータのユーザー定義型変数を宣言する。
構文: |
Dim 変数名 As IS_PAR
Global 変数名 As IS_PAR |
例: |
Dim FILE1_PAR As IS_PAR |
3.任意の宣言セクション又はプロシージャに、必要に応じてISAMレコードのユーザー定義型変数を宣言する。宣言しない場合は、変数[IS_REC]を使用できる。
構文: |
Dim 変数名 As IS_REC
Global 変数名 As IS_REC |
例: |
Dim FILE1_REC As IS_REC |
4.任意コードモジュールの宣言セクションに、作成したいファイルのレコードの構造をユーザー定義型として宣言し、そのユーザー定義型変数を宣言する。
例: |
Type FILE1
F1_CODE As Sring * 4
F1_NAME As String * 16
F1_TEL As String * 12
End Type
Dim W_F1 As FILE1 |
5.定義したISAMパラメータ変数にパラメータをセットする。
説明: |
変数名.IS_FILNAM |
作成したいファイルのファイル名を拡張子なしで指定する。ここで、指定された名前に、拡張子[.key][.dat]がついた2つのファイルが作成される。 |
変数名.IS_KEYPOS |
レコード長を指定する。有効値は、16,32,64,128,256,512 |
変数名.IS_FILREC |
アクセスキーのバイト位置を指定する。 |
変数名.IS_KEYSIZ |
アクセスキーのバイト数を指定する。 |
|
例: |
FILE1_PAR.IS_FILNAM = "FILE1"
FILE1_PAR.IS_FILREC = 32
FILE1_PAR.IS_KEYPOS = 1
FILE1_PAR.IS_KEYSIZ = 4
この例では、F1_CODE がアクセスキーであることを意味する。 |
6.ISAMアクセスツールのプロシージャ及び関数を使ってコードを作成する。
【プロシージャ説明】
プロシージャ名 |
説明 |
ISOPEN |
機能: |
ファイルをオープンする |
構文: |
ISOPEN [ISAMパラメータ変数] |
例: |
ISOPEN FILE1_PAR |
|
ISCLOSE |
機能: |
ファイルをクローズする |
構文: |
ISCLOSE [ISAMパラメータ変数] |
例: |
ISCLOSE FILE1_PAR |
|
ISSTART |
機能: |
カレントレコードを位置づける |
構文: |
ISSTART [ISAMパラメータ変数] , [ISAMレコード変数] |
例: |
W_F1.F1_CODE = "1000"
LSET FILE1_REC = W_F1
ISSTART FILE1_PAR , FILE1_REC |
|
ISNXTREAD
|
機能: |
カレントレコードの次のレコードを読み込む |
構文: |
ISNXTREAD [ISAMパラメータ変数] , [ISAMレコード変数] |
例: |
ISNXTREAD FILE1_PAR , FILE1_REC
LSET W_F1 = FILE1_REC |
|
ISREAD |
機能: |
指定したキーのレコードを読み込む |
構文: |
ISREAD [ISAMパラメータ変数] , [ISAMレコード変数] |
例: |
W_F1.F1_CODE = "1000"
LSET FILE1_REC = W_F1
ISREAD FILE1_PAR , FILE1_REC
LSET W_F1 = FILE1_REC |
|
ISWRITE |
機能: |
レコードを追加する |
構文: |
ISWRITE [ISAMパラメータ変数] , [ISAMレコード変数] |
例: |
LSET FILE1_REC = W_F1
ISWRITE FILE1_PAR , FILE1_REC |
|
ISREWRITE |
機能: |
カレントレコードの内容を変更する |
構文: |
ISREWRITE [ISAMパラメータ変数] , [ISAMレコード変数] |
解説: |
キーフィールドの内容を変更することはできない。
変更したい場合は、変更前のレコードを削除して変更後のレコードを追加する。 |
例: |
LSET FILE1_REC = W_F1
ISREWRITE FILE1_PAR , FILE1_REC |
|
ISDELETE |
機能: |
カレントレコードを削除する。 |
構文: |
ISDELETE [ISAMパラメータ変数] , [ISAMレコード変数] |
解説: |
削除したレコードは物理的にスペースに置き換えられるので、いかなる方法でも復旧することはできない。 |
例: |
ISDELETE FILE1_PAR , FILE1_REC |
|
ISALIGN |
機能: |
ファイルの再編成を行う。 |
構文: |
ISALIGN [ISAMパラメータ変数] |
解説: |
削除レコードのつめ直しが行われる。
又、データファイルは物理的にもアクセスキー順に格納される。 |
例: |
ISALIGN FILE1_PAR |
|
ISRECOV |
機能: |
ファイルの復旧を行う。 |
構文: |
ISRECOV [ISAMパラメータ変数] |
解説: |
キーファイルを必要としないため、データファイルからISAMファイルを作成することができる。
又、データファイルは物理的に入力順に格納される。 |
例: |
ISRECOV FILE1_PAR |
|
ISCVINT% |
機能: |
整数型変数について内部データとの変換を行う。 |
構文: |
ISCVINT%(整数型変数) |
解説: |
キーフィールドに整数型変数が含まれる場合に使用する。
キーは常に文字列変数として参照されるため、正しくソートされるように、内部データとの変換を行う必要がある。 |
例: |
ISCVINT%(W_KEY1) |
|
ISCVLNG& |
機能: |
長整数型変数について内部データとの変換を行う。 |
構文: |
ISCVLNG&(長整数型変数) |
解説: |
キーフィールドに長整数型変数が含まれる場合に使用する。
キーは常に文字列変数として参照されるため、正しくソートされるように、内部データとの変換を行う必要がある。 |
例: |
ISCVLNG&(W_KEY2) |
|
【お願い】
このプログラムはフリーソフトです。
改造は自由ですが、著作権は放棄しません。
このプログラムによるいかなる損害も作者はその責任を負いません。
よろしくお願いします。