BHT-BASIC4.0:データファイルの削除等について(KILL、CLFILEのラッパ関数)
データファイルのファイル削除やレコード削除を行う場合、
その都度 KILL命令 や CLFILE命令
を実行するよりもラッパ関数を作って、それをコールする方がソース的にすっきりすると思います。
エラー処理は何もしていませんが、ここでエラー内容などを表示するといいと思います。
この関数は、"TEST.DAT"ファイルのレコード削除しかできない関数をラップしたものです。
FIELD命令はフィールド変数を固定でしか宣言できないのでこの様な感じになりました。 この部分を汎用性を持たせるのは少し大変なので、固定でもいいかなと思います。 方法が無いことは無いのですが、やはりFIELD命令がネックになります。
以下の関数は無理やり汎用性を持たせたCLFILE命令のラッパ関数です。
ファイルのフィールド数、各フィールド幅の取得を行う為に、 拡張関数の "FILE.FN3" を使用しています。
INF$の内容は以下の通りです。
■関連記事
⇒BHT-BASIC:DENSOのハンディターミナルの開発言語のBHT-BASIC4.0を使ってみた
⇒BHT-BASIC4.0:変数宣言の書き方(BHT-1300)
⇒BHT-BASIC4.0:変数宣言の書き方その2(BHT-1300)
⇒BHT-BASIC4.0:ユーザ定義関数について(BHT-1300)
⇒BHT-BASIC4.0:演算子について(BHT-1300)
⇒BHT-BASIC4.0:画面への表示について(BHT-1300)
⇒BHT-BASIC4.0:キー入力について(BHT-1300)
⇒BHT-BASIC4.0:数値用キー入力関数(ユーザ定義関数)について(BHT-1300)
⇒BHT-BASIC4.0:ユーザ定義関数の値渡し・参照渡しについて(BHT-1300)
⇒BHT-BASIC4.0:文字列を扱うユーザ定義関数について
⇒BHT-BASIC4.0:文字列を扱うユーザ定義関数についてその2
⇒BHT-BASIC4.0:文字列を扱うユーザ定義関数についてその3
⇒BHT-BASIC4.0:TeraTermを使ってDENSOのハンディターミナルにファイル(プログラム)転送を行う方法
⇒BHT-BASIC4.0:I/OポートとWAIT、さらにTIMERについて(BHT-1300)
⇒BHT-BASIC4.0:データファイルの取り扱いについて(BHT-1300)
⇒BHT-BASIC4.0:データファイルの取り扱いについてその2(書込み・読込みの実用的な関数)
⇒BHT-BASIC4.0:データファイルの検索について(SEARCH関数)
⇒BHT-BASIC4.0:ユーザ関数の引数の仮変数に対する代入の注意点
⇒BHT-BASIC4.0:ファイルの存在確認関数を作ってみました
⇒BHT-BASIC4.0:拡張関数のバイナリサーチ処理関数(BSEARCH.FN3)の使い方
⇒BHT-BASIC4.0:拡張関数のサーチ処理関数(SEARCH.FN3)の使い方
⇒BHT-BASIC4.0:簡単なメニュー表示・選択を行うユーザ関数について
⇒BHT-BASIC4.0:ファイル伝送におけるXFILE命令の使い方
⇒BHT-BASIC4.0:バーコードの読込み(バーコードスキャン)について
⇒BHT-BASIC4.0:Bluetoothデバイスアドレス取得等について
⇒VB.NET:ハンディターミナル(BHT-1300等)とのデータファイルの送受信について
■KILL命令のラッパ関数について
KILL命令の定義は以下の様です。
KILL <ファイル名>
<ファイル名>:"[ドライブ名:]ファイル名[<S>]"の書式の文字列式
("ファイル名"は"ファイル名称"+"."+"拡張子")
KILL命令のラッパ関数は以下の様になります。
<ファイル名>:"[ドライブ名:]ファイル名[<S>]"の書式の文字列式
("ファイル名"は"ファイル名称"+"."+"拡張子")
エラー処理は何もしていませんが、ここでエラー内容などを表示するといいと思います。
■CLFILE命令のラッパ関数について
データファイルに書き込む関数を以下の様に定義します。
CLFILE命令の定義は以下の様です。
CLFILE [#]<ファイル番号>
<ファイル番号>:1~16の値を返す数値式
(OPEN命令で指定したファイル番号を指定)
CLFILE命令のラッパ関数は以下の様になります。
<ファイル番号>:1~16の値を返す数値式
(OPEN命令で指定したファイル番号を指定)
この関数は、"TEST.DAT"ファイルのレコード削除しかできない関数をラップしたものです。
FIELD命令はフィールド変数を固定でしか宣言できないのでこの様な感じになりました。 この部分を汎用性を持たせるのは少し大変なので、固定でもいいかなと思います。 方法が無いことは無いのですが、やはりFIELD命令がネックになります。
以下の関数は無理やり汎用性を持たせたCLFILE命令のラッパ関数です。
ファイルのフィールド数、各フィールド幅の取得を行う為に、 拡張関数の "FILE.FN3" を使用しています。
CALL "FILE.FN3" .fcInfGetF FILENAME$, INF$
FILENAME$:ファイル名
INF$:ファイル情報が返される(40 文字、または、ヌル文字)
(必ず40 バイト以上の領域を確保しておく)
FILENAME$:ファイル名
INF$:ファイル情報が返される(40 文字、または、ヌル文字)
(必ず40 バイト以上の領域を確保しておく)
INF$の内容は以下の通りです。
位置 | 文字数 | データ内容 | 値 |
---|---|---|---|
1 | 12 | ファイル名 | 文字列 |
13 | 2 | (システムリザーブ) | - |
15 | 2 | 最大レコード数 | 1~32767 |
17 | 2 | レコード数 | 1~32767 |
19 | 2 | 1クラスタあたりのレコード数 | 0 |
21 | 1 | レコード長 | 1~255 |
22 | 1 | フィールド数 | 1~16 |
23 | 16 | 各フィールドのフィールド幅 | 1~254 |
39 | 2 | (システムリザーブ) | - |
【DENSO】ハンディターミナルBHT-1306BWB+USB通信ユニットCU-1321+ACアダプタAD2+標準バッテリBT-130L-C【送料無料・代引手数料無料】【02P05Nov16】 価格: 208,980円 |
■関連記事
⇒BHT-BASIC:DENSOのハンディターミナルの開発言語のBHT-BASIC4.0を使ってみた
⇒BHT-BASIC4.0:変数宣言の書き方(BHT-1300)
⇒BHT-BASIC4.0:変数宣言の書き方その2(BHT-1300)
⇒BHT-BASIC4.0:ユーザ定義関数について(BHT-1300)
⇒BHT-BASIC4.0:演算子について(BHT-1300)
⇒BHT-BASIC4.0:画面への表示について(BHT-1300)
⇒BHT-BASIC4.0:キー入力について(BHT-1300)
⇒BHT-BASIC4.0:数値用キー入力関数(ユーザ定義関数)について(BHT-1300)
⇒BHT-BASIC4.0:ユーザ定義関数の値渡し・参照渡しについて(BHT-1300)
⇒BHT-BASIC4.0:文字列を扱うユーザ定義関数について
⇒BHT-BASIC4.0:文字列を扱うユーザ定義関数についてその2
⇒BHT-BASIC4.0:文字列を扱うユーザ定義関数についてその3
⇒BHT-BASIC4.0:TeraTermを使ってDENSOのハンディターミナルにファイル(プログラム)転送を行う方法
⇒BHT-BASIC4.0:I/OポートとWAIT、さらにTIMERについて(BHT-1300)
⇒BHT-BASIC4.0:データファイルの取り扱いについて(BHT-1300)
⇒BHT-BASIC4.0:データファイルの取り扱いについてその2(書込み・読込みの実用的な関数)
⇒BHT-BASIC4.0:データファイルの検索について(SEARCH関数)
⇒BHT-BASIC4.0:ユーザ関数の引数の仮変数に対する代入の注意点
⇒BHT-BASIC4.0:ファイルの存在確認関数を作ってみました
⇒BHT-BASIC4.0:拡張関数のバイナリサーチ処理関数(BSEARCH.FN3)の使い方
⇒BHT-BASIC4.0:拡張関数のサーチ処理関数(SEARCH.FN3)の使い方
⇒BHT-BASIC4.0:簡単なメニュー表示・選択を行うユーザ関数について
⇒BHT-BASIC4.0:ファイル伝送におけるXFILE命令の使い方
⇒BHT-BASIC4.0:バーコードの読込み(バーコードスキャン)について
⇒BHT-BASIC4.0:Bluetoothデバイスアドレス取得等について
⇒VB.NET:ハンディターミナル(BHT-1300等)とのデータファイルの送受信について
コメント