*[PPx]スクリプトメモ エントリマーク3種

汎用化して引数で動作モードを切り替えようかとも思うのだが・・・
引数の判定ロジックの方が本体より長くなりそうなのでやめた。

カーソル位置から最初のエントリまで選択マーク

//!*script
// カーソル位置から最初のエントリまで選択マーク Ver 2.0
// ============================================================
var i        = 0;          // ループインデックス;
var sI       = 0;          // 開始インデックス
var eI       = 0;          // 終了インデックス
var EntryObj = PPx.Entry;  // PPxエントリコレクション

sI = 1;
eI = PPx.EntryIndex;

for (i=sI;i<=eI;i++) {
     EntryObj.Index = i;
     EntryObj.Mark  = 1;
}

PPx.Quit();

カーソル位置から最後のエントリまで選択マーク

//!*script
// カーソル位置から最後のエントリまで選択マーク Ver 2.0
// ============================================================
var i        = 0;          // ループインデックス;
var sI       = 0;          // 開始インデックス
var eI       = 0;          // 終了インデックス
var EntryObj = PPx.Entry;  // PPxエントリコレクション

sI = PPx.EntryIndex;
eI = EntryObj.count;

// マークループ処理
for (i=sI;i<=eI;i++) {
     EntryObj.Index = i;
     EntryObj.Mark  = 1;
}

PPx.Quit();

最後にマークしたエントリからカーソル位置まで選択マーク

//!*script
//!*script
// A-B間選択マーク Ver 1.2
// A点:マークエントリ ※事前にマークが必要
// B点:カーソル位置エントリ
// ============================================================
var i        = 0;          // ループインデックス;
var sI       = 0;          // 開始インデックス
var eI       = 0;          // 終了インデックス
var EntryObj = PPx.Entry;  // PPxエントリコレクション
var RetCD    = '';         // 戻り値ワーク
var command  = '';         // PPxコマンドワーク

// マークチェック
if (PPx.EntryMarkCount == 0) {
    command = '%"' + (PPx.ScriptName).replace(/^.+\\(.+$)/,'$1') + '"'
            + '%:%I"マークなしエラー。"';
    PPx.Execute(command);
    PPx.Quit(-1);
}

// マーク位置取得
RetCD = EntryObj.LastMark;
if (RetCD != 1) {
    command = '%"' + (PPx.ScriptName).replace(/^.+\\(.+$)/,'$1') + '"'
            + '%:%I"内部エラー。カーソル移動に失敗しました。"';
    PPx.Execute(command);
    PPx.Quit(-1);
}

// A-B点チェック
if (PPx.EntryIndex == EntryObj.Index) {
    command = '%"' + (PPx.ScriptName).replace(/^.+\\(.+$)/,'$1') + '"'
            + '%:%I"カーソル位置指定エラー。"';
    PPx.Execute(command);
    PPx.Quit(-1);
}

// ループ点確定
if (PPx.EntryIndex > EntryObj.Index) {
    sI = EntryObj.Index + 1;
    eI = PPx.EntryIndex;
} else {
    sI = PPx.EntryIndex;
    eI = EntryObj.Index - 1;
}

// マークループ処理
for (i=sI;i<=eI;i++) {
     EntryObj.Index = i;
     EntryObj.Mark  = 1;
}

// 後処理
PPx.Quit();