|
COBOLの連番付与のmocascript拝見しました。すごくいいです。
COBOLに興味があり、最近OpenCOBOLで勉強を始めたのですが、COBOLが扱える適当な
エディタがなかなか見つからなかったので大変助かりました、ありがとうございます。
早速Peggyを入手して使わせて戴いております。
ところで、途中で行を挿入した場合には1の位の単位で
振ってくれるともっといいなと思い、僭越ですが、
下記のようにScriptを追加・変更してみたのですが、どうでしょうか。
// 追加変数
strPostSeqno // 次の行の連番文字列
intPostSeqno // 次の行の連番数値
..........途中省略..........
// 前行の一連番号を取得
..........途中省略..........
// 次の行の一連番号を取得
if ( theView.CP.line > 0 ) {
strPostSeqno = theView.getTextAt(theView.CP.line + 1, 6);
if ( strPostSeqno.search(/\d{6}/) != -1 ) {
intPostSeqno = parseInt(strPostSeqno, 10);
}
else {
intPostSeqno = -1;
}
}
else {
intPostSeqno = -1;
}
..........省略..........
// 前行及び現在行に応じて挿入する一連番号を決定
if ( intCurrentSeqno >= 0 ) {
// 現在行を取得できた場合
// 次の行が取得できない場合=現在最終行の時は、新しい番号を振る
if ( intPostSeqno == -1) {
intInsertSeqno = (intCurrentSeqno - intCurrentSeqno % intSeqnoInterval)
+ intSeqnoInterval;
}
// 次の行が取得できた場合は
else {
// もし、現在行と次の行の番号の差が2以上の場合は現在行+1を挿入
if ( intPostSeqno > intCurrentSeqno + 1) {
intInsertSeqno = intCurrentSeqno + 1;
}
// もし、現在行と次の行の番号の差が2未満の場合は一連番号が振れないので、現在行と同じものを指定
else {
intInsertSeqno = intCurrentSeqno;
}
strPreFixBreak = "";
}
}
|
|