N88-BASIC(86) サンプルプログラム:ランダムファイル

29. ランダムファイル

100 CLS:PRINT"住所録のファイル名は?"
110 PRINT:LINE INPUT F$
120 IF F$="" THEN 100
130 OPEN F$ AS #1
140 FIELD #1,30 AS NAM$,20 AS TEL$,50 AS ADR$
150 *MENU
160 PRINT:PRINT
170 PRINT "<<メニュー>>":PRINT
180 PRINT "  検索/修正   : 1"
190 PRINT "  新しく登録   : 2"
200 PRINT "  終 わ り   : 0"
210 PRINT:PRINT "操作を番号で選択してください ";
220 Q$=INPUT$(1):PRINT Q$
230 ON VAL(Q$)+1 GOTO *EXIT,*INNAME,*NEWENTRY
240 GOTO *MENU
250 *INNAME
260 IF LOF(1)<>0 THEN 330
270 PRINT:PRINT F$+" にはデータがありません"
280 PRINT:PRINT"新しく登録しますか?(Y/N) ";
290 Q$=INKEY$:IF Q$="" THEN GOTO 290
300 IF Q$="N" OR Q$="n" THEN GOTO *MENU
310 IF Q$="Y" OR Q$="y" THEN GOTO *NEWENTRY
320 GOTO 290
330 NH=1
340 PRINT:PRINT "探す名前は?":PRINT:INPUT "名前:";HNAM$
350 IF HNAM$="" THEN *MENU
360 HL=LEN(HNAM$)
370 IF NH>LOF(1) THEN PRINT:PRINT"その名前は登録されていません":GOTO *MENU
380 GET #1,NH
390 IF HNAM$><>LEFT$(NAM$,HL) THEN NH=NH+1:GOTO 370
400 PRINT:PRINT"名前:";NAM$
410 PRINT"TEL:";TEL$
420 PRINT"住所:";ADR$
430 PRINT:PRINT"修正しますか?(Y/N) ";
440 Q$=INKEY$:IF Q$="" THEN GOTO 440
450 IF Q$="N" OR Q$="n" THEN PRINT "N":GOTO *MENU
460 IF Q$="Y" OR Q$="y" THEN PRINT "Y":GOTO *CHANGE
470 GOTO 440
480 *CHANGE
490 PRINT:PRINT"リターンキーだけ押すとその項目は修正されません"
500 DNAM$="":DTEL$="":DADR$=""
510 PRINT:INPUT"名前";DNAM$
520 IF DNAM$<>"" THEN LSET NAM$=DNAM$
530 INPUT"TEL";DTEL$
540 IF DTEL$<>"" THEN LSET TEL$=DTEL$
550 INPUT"住所";DADR$
560 IF DADR$<>"" THEN LSET ADR$=DADR$
570 PUT #1,NH:GOTO *MENU
580 *NEWENTRY
590 PRINT:PRINT "新しく登録します"
600 NH=LOF(1)+1
610 PRINT:INPUT"名前:";NNAM$
620 IF NNAM$="" THEN *MENU
630 INPUT"TEL:";NTEL$
640 INPUT"住所:";NADR$
650 LSET NAM$=NNAM$
660 LSET TEL$=NTEL$
670 LSET ADR$=NADR$
680 PUT #1,NH:GOTO *MENU
690 *EXIT
700 PRINT:PRINT"終了"
710 CLOSE:END
.
    
    
指定ファイルをランダムモードでオープン
名前(30バイト)、TEL(20バイト)、
住所(50バイト)の専用フィールド変数を定義。









検索のルーチン。
ファイルに全くデータがない場合の例外処理。







検索したい名前の入旅行。


ファイル中から1レコードずつ読み込み、
名前を検索する。

検索結果の表示。


修正の要、不要を決める。




修正のルーチン
各データを各フィールド変数にセット。







修正後のデータを書き出す。
新規登録のルーチン。

ファイルの最終レコードの次のレコードを指定。
各データを各フィールド変数にセット。






データを書き出す。
終了のルーチン。

ファイルのクローズ、終了。
プログラム中で使用されている主な命令

出典:N88-日本語BASIC(86)(Ver6.2) リファレンスマニュアル、日本電気株式会社、1991年発行


inserted by FC2 system