リナンバー

インデックスに戻る][ホームに戻る][掲示板にジャンプ][メールを送る]

現在ロードされているプログラムの一つのまとまり毎に行番号を切り上げながらリナンバーする為のユーティリティです。

特長 & 機能
行番号による範囲の指定が可能
増分の指定が可能
[::]から始まる行は10000番単位に切り上げる。
[:]から始まる行は1000番単位に切り上げる。
ラベルから始まる行は100番単位に切り上げる。

ソース

使用方法
a.現在ロードされているプログラムに【リナンバー】をマージする。
b.コマンドモードで goto *R[,[<新行番号>][,<増分>][,<開始行>]-[<終了行>]]] を入力する。
c.終わり

詳細説明
[a.]で既にマージされていれば不要
パラメータを省略したときはそれぞれ,10,10,1,65535 として扱われます。
要するに普通の renum のパラメータの前に1つ[,]がよぶんに付くだけである。

注意
普通の renum と同様,プログラムの順序を変えることはできません。
このプログラムは100%BASICで書かれているのでMZ-2800でも動くと思います。
外部メモリの増設をしていない場合は下の様に変更してください
一回毎に"EMM:"を[init]しているので必要ならば下のように変更して下さい。

使用目的
プログラムの整理
行番号の予約

備考
私の場合,行番号 60000 以降に置いているので goto 60000 でも使用可能。
行番号によるジャンプ行の指定は使用していないので自由なところにマージ可能。

最初の1回目はファイルが無いのでエラーがでます。
そのときは goto 60120 を入力して下さい

EMM:を破壊したくない時
60110 kill "EMM:リナンバーデータ
60112 kill "EMM:リナンバーデータ

EMM:が実装されていない時
60110 kill "FD1:リナンバーデータ
60112 kill "FD1:リナンバーデータ
60410 list "FD1:リナンバーデータ
60420 open "i",#1,"FD1:リナンバーデータ


解説
MZ-80Cの時代から私は10000番以下は良く使うサブルーチン,10000番から20000番までは何々と決めてプログラムを作っていました。

従って,BASICが拡張されて[renum]ができるようになっても一々行番号を覚え直さなければならないので使いませんでした。

MZ-2500になってラベルジャンプが使える様になってもリストを取るのに一々ラベルを入力するのは大変な労力が必要です。
ラベルは漢字を使い,長いほどプログラムの具体的な内容を表現できるが,リストを取るときには1字でも間違うと取れないからです。

これに比べれば L.10000 [CR]などは瞬間的に入力できます。
MZ-2500は範囲が指定できるとはいってもサブルーチン毎に[renum]をかけるのも面倒です。

そこで作ったのがこのプログラムです。

これにより印字は 20000 番以降などと覚えておけばまず変化しません。

リストを見たくなるのはたいていサブルーチン単位ですが,サブルーチンはラベルから始まり,ラベルは百番単位ですから行番号は最悪で3桁覚えればよいことが分かります。

さらに重要なサブルーチンほど覚える桁数が少なく,また変化する可能性も少なくできます。

これはプログラムの構造化に大変役に立ちます。
即ちプログラムの最小単位にラベルを付け,これをいくつか合わせて小さなサブルーチンとなり,またこれをいくつか合わせて大きなサブルーチンができます。
この重要度に従って大きなサブルーチンは1万番単位,小さなサブルーチンは千番単位というように行番号で階層化することができます。

また逆にこのサブルーチンは何々をするためのものだから何番台にあるだろうという予測ができるようになります。

これとインデントにより処理した後のリストを見ると重要なサブルーチンの先頭は[:]による空行と,ラベルによる5文字の段付けと,千または1万番単位の行番号の変化という3つの事項により変化を付けることができます。


他機種への移植:
文番号を持たない不便なBASICへの移植はできません。
(・_・):慣れたらこんなに便利なもんはないねんけど、使わん人には分かってもらわれへんやろなぁ!
N88BASICなどの部分renumできないカスBASICは、自分で、renumコマンドに相当する物を作らなければならないので、やめた方が良いでしょう。(おぃおぃ

(・_・):ほな何やったら、移植できんねん。
(^_^):まず無いやろなぁ。

インデックスに戻る][ホームに戻る][掲示板にジャンプ][メールを送る]