次に SFLCLR
( Subfile Clear ) と SFLINZ
( Subffile Initialize ) について
これも体感してみよう。
まず SFLCLR
とは文字通りサブ・ファイルをクリヤーする機能であって
サブ・ファイルの中身を消去して空にする機能である。
次はサブ・ファイル・クリヤー( SFLCLR
) の機能を体験できるようにしてある。
画面表示下部の SFLCLR
ボタンを押すと、一瞬にしてサブ・ファイルの
データが消去される空になる。
これが SFLCLR
の機能である。
商品コード | 商品名 | 単価 | 品種コード | 品種名 |
0001 | NV-BS30S | 目次ビデオ | 165,000 | 0002 | ビデオデッキ |
0002 | NV-BS50S | ビデオ画王 | 200,000 | 0002 | ビデオデッキ |
0003 | NV-CF1 | Cカセット編集ビデオ | 58,000 | 0002 | ビデオデッキ |
0004 | NV-CF2 | 商品AAA | 168,000- | 0003 | コンポ |
0005 | NV-CF81 | 更新テスト | 48,000 | 0005 | ヘッドホン |
0006 | NV-CF9 | 漢字テスト | 19,000 | 0002 | ビデオデッキ |
0007 | NV-F850 | 音声録画ビデオ | 140,000 | 0002 | ビデオデッキ |
0008 | NV-HK1 | 歌えるビデオ | 90,000 | 0002 | ビデオデッキ |
0009 | NV-H1T-S | みんなのビデオ | 69,800 | 0002 | ビデオデッキ |
0010 | NV-SX10 | ビデオ画王 | 115,000 | 0002 | ビデオデッキ |
0011 | NV-W1 | 世界放送方式ビデオ | 350,000 | 0002 | ビデオデッキ |
0012 | RX-DT75 | CDラジオカセット | 53,800 | 0003 | コンポ |
0013 | SC-CH150 | 超ミニ・コンポ | 70,000 | 0003 | コンポ |
SFLCLR
についてはご存じかもしれないが、次は SFLINZ
の機能である。
SFLINZ
( Subfile Initialize ) 、つまりサブ・ファイル初期化という機能は
サブ・ファイル一杯にブランク・レコードを埋め込む機能である。
SFLCLR
はレコードを消去していたのに対して SFLINZ
はブランク・レコードを
目いっぱいに埋める機能のことである。
次の画面は SFLINZ
の機能を示している。
この状態はサブ・ファイル・レコードが全くまだ無い状態であり、
それに対して SFLINZ
ボタンを押すと一瞬のうちにサブ・ファイルはブランク・レコードで
一杯に満たされる。
商品コード | 商品名 | 単価 | 品種コード | 品種名 |
参考までにサブ・ファイルにレコードがある場合に SFLCLR と SFLINZ を
行ったときの違いを下記で体験することができる。
操作の順序として
SFLCLR
ボタンを押して結果を確認するRESET
ボタンを押して元通りにする。SFLINZ
ボタンを押して結果を確認する。商品コード | 商品名 | 単価 | 品種コード | 品種名 |
0001 | NV-BS30S | 目次ビデオ | 165,000 | 0002 | ビデオデッキ |
0002 | NV-BS50S | ビデオ画王 | 200,000 | 0002 | ビデオデッキ |
0003 | NV-CF1 | Cカセット編集ビデオ | 58,000 | 0002 | ビデオデッキ |
0004 | NV-CF2 | 商品AAA | 168,000- | 0003 | コンポ |
0005 | NV-CF81 | 更新テスト | 48,000 | 0005 | ヘッドホン |
0006 | NV-CF9 | 漢字テスト | 19,000 | 0002 | ビデオデッキ |
0007 | NV-F850 | 音声録画ビデオ | 140,000 | 0002 | ビデオデッキ |
0008 | NV-HK1 | 歌えるビデオ | 90,000 | 0002 | ビデオデッキ |
0009 | NV-H1T-S | みんなのビデオ | 69,800 | 0002 | ビデオデッキ |
0010 | NV-SX10 | ビデオ画王 | 115,000 | 0002 | ビデオデッキ |
0011 | NV-W1 | 世界放送方式ビデオ | 350,000 | 0002 | ビデオデッキ |
0012 | RX-DT75 | CDラジオカセット | 53,800 | 0003 | コンポ |
0013 | SC-CH150 | 超ミニ・コンポ | 70,000 | 0003 | コンポ |
SFLCLR
と SFLINZ
の機能の違いがわかったところでサブ・ファイルにレコードを
出力して表示できるようにするには
とするのが正しいサブ・ファイルの使い方であろう。
( ただし上記で SFLCLR
は必ずしも必要ない )
ところが多くの誤った使い方として、
という使用方法がある。
なぜこのような難しい持って回ったような使い方をするのだろうか ?
SFLINZ
で SFLSIZ
の分だけすべてブランク・レコードで埋めてしまうと
このように処理を自分で複雑にしてしまい、最後にはバグを誘発することは必至である。
原因は最初にわからないままに SFLINZ
を使ったことである。
SFLレコードをただただ追加するだけの処理にしておけば SFLレコードの処理は
大変やさしく安全なものになる。
いくら社内で SFLINZ
が使われているからといって SFLINZ
を使う正しい理由はどこにもなく
ただ処理を複雑なものにするばかりである。
正しい SFLレコードの処理は、
SFLCLR
→ WRITE
命令で SFLレコードを追加
と覚えておこう。
SFLINZ
を使っていたら、それは間違い
と考えて差し支えない。
過去に SFLINZ
が必要であったことは一度もない。
誤解を解いて高品質なプログラム開発を進めて欲しい。