2023年1月3日火曜日

PPvを単体で活用 - 表示ファイルの変更

必要なときだけPPcを起動して、PPvの表示ファイルを切り替えられるようにする。これにより、PPcに紐付けられたビュアーとしてではない、PPv単体での活用が可能になる。

以下を編集して取込。

_Command	= {	; ユーザコマンド・関数
opensyncwin	= *ppc -r -bootid:x -single -k *jumppath %*arg(1) %%: *mapkey use,K_syncwin %%: *ppvoption id %%*rightstr("%%n", 1) %%: *ppvoption sync on %%: *fitwindow %*extract("%%NV%*rightstr("%n", 1)"),%%NC,8
}

KV_main	= {	; PPvメイン窓
O	,*opensyncwin %0
}

K_syncwin	= {
ENTER	,*ifmatch "o:e,a:d+","%*name(CD,"%R","%1")" %: %K"@ENTER" %: *stop
	%K"@Q
}

ユーザコマンド*opensyncwinにパスを渡すと、そのパスをPPcで表示する。ここではPPxフォルダのパスを渡している。

操作は以下の通り。

  1. PPvを起動
  2. [O]を押すとPPcが連動ビューONで起動
  3. 目的のファイルを見つけたら[ENTER]でPPcが閉じる

応用編

*opensyncwinに渡すパスを変えてみよう。

表示中のファイルパスを渡す

PPvで表示中のファイルのパスを渡す。

*opensyncwin %FCD

ListFileを渡す

予め作っておいたListFileを渡す。以下はPPxフォルダにあるforppv.txtを渡す場合。

*opensyncwin %0forppv.txt

ListFileは、*makelistfileを使うと作るのが簡単。

例えば登録したいエントリをマークし、*makelistfile %0forppv.txt -basic -marked でListFileを作成することができる。 また、PPcでListFileを表示し、そこにエントリをコピーをすると、そのエントリを登録することができる。

スクリプトで作成したListFileを渡す

PPvの表示履歴を渡す。 以下をScriptフォルダに保存。

ppvhistory.js

//!*script
// %hvnをListfile形式で一時ファイルに保存し、パスを返す
// 例:*ppc -bootid:z -single %*script(%0\Script\ppvhistory.js)

// 一時ファイルを作成
var tempfile = PPx.Extract("%*temp\(\)ppvhis.txt");
var strLine = ";ListFile\r\n";

// %hvnを20まで取得
for (var i = 0; i < 20; i++) {
  if (PPx.Extract("%hv"+i)!="") {
    strLine += PPx.Extract("%hv"+i)+ "\r\n";
  } else {
    break;
  }
}

// 一時ファイルに書き込み
var fs = PPx.CreateObject("Scripting.FileSystemObject");
var f = fs.OpenTextFile(tempfile, 2, true, -1); // unicodeで書き込み
f.Write(strLine);
f.Close();

PPx.Result = tempfile;

以下のコマンドをPPvから実行する。

*opensyncwin %*script(%0\Script\ppvhistory.js)

0 件のコメント:

コメントを投稿