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年発行