あいさつ
これまで、PPcでのフォルダブックマークと、PPvでのファイルブックマークの方法を考察してきた。
今回はその応用編。ブックマークをファイルに保存して、再利用できるようにする。
準備(両者共通)
- file2alias.js
- alias2file.js
の二つをScriptフォルダに保存する。
file2alias.jsはリストファイルを読みとり、エイリアスに登録するスクリプトで、alias2file.jsはエイリアスをリストファイルにして保存するスクリプト。
ちなみにリストファイルというのは
;ListFile D:\Work\画像フォルダ\ひだまりスケッチ\kulSc26Vu4BA6C577.jpg D:\Work\画像フォルダ\ひだまりスケッチ\0dd01f46.jpg D:\Work\画像フォルダ\輪るピングドラム\2dffa763.jpg D:\Work\画像フォルダ\輪るピングドラム\3b0de06d.jpg D:\Work\画像フォルダ\輪るピングドラム\4d45aa4d.jpg
こんな書式のテキストファイルで、仮想ディレクトリとして扱うためのもの。
普通にテキストファイルにするよりもこうしておいたほうが、後々何か使い道ありそうかも、と思ってこのようにしている(一行目に;ListFileって付けるだけだし)。
file2alias.js
//!*script // リストファイルの内容をエイリアスにセットする // 第一引数:リストファイルのパス // 第二引数:エイリアス // 引数がなければ終了 if (PPx.Arguments.Length < 2){ PPx.SetPopLineMessage("引数が正しくありません。"); PPx.Quit(-1); } var s = new ActiveXObject('ADODB.Stream'); var i = 0; var fn = PPx.Arguments.Item(0); var cmd = PPx.Arguments.Item(1); // エイリアスをリセット for (var i2 = 0; i2 < 30; i2++) { PPx.Execute("*alias "+cmd + i2 + " = "); } // ファイルを読み取り s.type = 2; s.charset = 'utf-16'; s.open(); s.loadFromFile(fn); // エイリアスを順次セット while(!s.EOS){ hoge = s.readText(-2); if (hoge != "" && hoge != ";ListFile") { PPx.Execute("*alias "+cmd + i + " = " +hoge); i++; } } s.close();
alias2file.js
//!*script // エイリアスをリストファイルに保存する // 第一引数:リストファイルのパス // 第二引数:エイリアス // 引数がなければ終了 if (PPx.Arguments.Length < 2){ PPx.SetPopLineMessage("引数が正しくありません。"); PPx.Quit(-1); } var strLine = ";ListFile"; var objFileSys = new ActiveXObject("Scripting.FileSystemObject"); var fn = PPx.Arguments.Item(0); var cmd = PPx.Arguments.Item(1); // エイリアスを展開し一つにまとめる for (var i = 0; i < 30; i++) { if (PPx.Extract("%'"+ cmd + i + "'")){ strLine = strLine + "\r\n" +PPx.Extract("%'" +cmd + i + "'"); } else { break; } } // ファイルに書き込み objFileSys.CreateTextFile(fn); var sw = new ActiveXObject("ADODB.Stream"); sw.Type = 2; sw.charset = "utf-16"; sw.Open(); sw.WriteText(strLine,1); sw.SaveToFile( fn, 2 ); sw.Close();
フォルダブックマークの場合
ここからは個別の話に。それぞれで、メニューを作成、表示するためのスクリプトを作成して、ブックマークをファイルに保存、再利用を実現する。
まず、PPxフォルダにbookmarkフォルダを作成。
次に、以下をScriptフォルダに保存する。
bookmarkmenu.js
//!*script // フォルダのブックマーク用メニュー fs = PPx.CreateObject("Scripting.FileSystemObject"); var objFileSys = new ActiveXObject("Scripting.FileSystemObject"); var fn = PPx.Extract('%0')+"bookmark"; // フォルダの有無をチェック if (objFileSys.FolderExists(fn) == false) { PPx.Echo(fn+"は存在しません"); PPx.Quit(-1); } // メニューの削除 PPx.Execute("*setcust -|M_hoehoe ="); // 静的メニューの登録 PPx.Execute('*setcust M_hoehoe:ブックマークをファイルに保存=*script %%0\Script\\alias2file.js,'+fn+'\\%%"ブックマークをファイルに保存"%%{%%|.txt%%},bookmark'); PPx.Execute('*setcust M_hoehoe:ブックマークフォルダへ移動=%%j '+ fn); PPx.Execute('*setcust M_hoehoe:-- ='); // フォルダリストを取得し動的メニューの登録 objFolder = objFileSys.GetFolder(fn); e = new Enumerator(objFolder.Files); for( ; !e.atEnd(); e.moveNext()) { PPx.Execute('*setcust M_hoehoe:'+e.item().Name+'=*script %%0\\Script\\file2alias.js,'+fn+"\\"+e.item().Name+",bookmark"); } // メニューを開く PPx.Execute("%M_hoehoe,1");
以下を編集して取り込み。
K_bookmark = { ** comment ** ',' , *script %0\Script\bookmarkmenu.js }
使い方
PPc上でC_s ,(Ctrl+Sを押してからカンマを押す)。メニューが表示される。
「ブックマークをファイルに保存」を選択すると、一行編集が出るので、保存したい名前を入力してEnter。
保存したブックマークを使いたいときは、メニュー下部のファイルから適当なものを選択。すると、エイリアスがそのファイルの内容に置き換わる。
ファイルブックマークの場合
まずは、PPxフォルダにClipフォルダを作成。
次に、以下をScriptフォルダに保存。
clipmenu.js
//!*script // PPv用ブックマークメニュー fs = PPx.CreateObject("Scripting.FileSystemObject"); var objFileSys = new ActiveXObject("Scripting.FileSystemObject"); var fn = PPx.Extract('%0')+"Clip"; // フォルダの有無をチェック if (objFileSys.FolderExists(fn) == false) { PPx.Echo(fn+"は存在しません"); PPx.Quit(-1); } // メニューの削除 PPx.Execute("*setcust -|M_hoehoe ="); // 静的メニューの登録 PPx.Execute('*setcust M_hoehoe:ブックマークをファイルに保存=*script %%0\Script\\alias2file.js,'+fn+'\\%%"ブックマークをファイルに保存"%%{%%|.txt%%},clip'); PPx.Execute('*setcust M_hoehoe:クリップフォルダへ移動=*execute C,*jumppath '+ fn); PPx.Execute('*setcust M_hoehoe:-- ='); // フォルダリストを取得し動的メニューの登録 objFolder = objFileSys.GetFolder(fn); e = new Enumerator(objFolder.Files); for( ; !e.atEnd(); e.moveNext()) { PPx.Execute('*setcust M_hoehoe:'+e.item().Name+'=*script %%0\\Script\\file2alias.js,'+fn+"\\"+e.item().Name+",clip"); } // メニューを開く PPx.Execute("%M_hoehoe,1");
以下を編集して取込
K_clip = { ** comment ** ',' , *script %0\Script\clipmenu.js }
使い方
PPv上でC_s ,(Ctrl+Sを押してからカンマを押す)。メニューが表示される。
「ブックマークをファイルに保存」を選択すると、一行編集が出るので、保存したい名前を入力してEnter。
保存したブックマークを使いたいときは、メニュー下部のファイルから適当なものを選択。すると、エイリアスがそのファイルの内容に置き換わる。
想定している使い方とか
フォルダであれば、個々の作業ごとに必要なフォルダを登録して再利用するだとか、各所にある画像フォルダをまとめておくとかだろうか。
ファイルであれば、個々の作業で閲覧することになるファイルをまとめておく、とかが考えられる。
他には、リストファイルを作成されるのを利用する方法もありそう。画像なりメモファイルなりを探してる途中、気になるものがあればブックマーク。あとでそれをリストファイル化し、仮想ディレクトリ内でゆっくり選別するとか。