外部記憶DB コマンドツール
テキスト取り込みツール Incorp
「Jane Style」のコンテキストメニューから、選択テキストや全レスをクリップボードを介して「外部記憶DB」に取り込むツールです。
コマンドは、エディタで書いてもいいですが、「外部記憶DB」の「ヘルプ/Janeコマンドジェネレーター」で手軽に作成することが出来ます。
コマンドライン
Incorp.exe [options]optionsは次のとおり。
| -i[ncorporate] | 選択テキストを取り込みます。※必須※ 誤動作防止のため、このパラメーターにこのオプションを入れないとIncorp.exeは何の動作もしません。 例:"PATH\Incorp.exe" -i |
| -a[ll_select] | ウインドウ内(スレ)の全テキストを選択して取り込みます。 例:"PATH\Incorp.exe" -i -a |
| -s[tring] STR | STRに任意の文字列を指定してください。指定文字列が取り込まれます。 ※スペースやTab、改行等を含む文字列を指定する場合は"(ダブルクオーテーション)でクオートしてください。 ※-s[tring]オプションを指定した場合は、選択文字or全文字の取り込みは行われません。 例:"PATH\Incorp.exe" -i -s STR |
| -c[lip] | ユーザーがプログラムorスクリプトからクリップボードに送ったテキストを、そのまま取り込みます。 例:"PATH\Incorp.exe" -i -c |
| -d[ir][ DIRID] | ツリーのフォルダを指定してから取り込みます。このオプションを設定しない場合は、現在選択しているフォルダに取り込みます。 [ DIRID]にフォルダIDを指定すると、指定したフォルダに取り込みます。 [ DIRID]を指定しなければフォルダ選択ダイアログかひらきます。 ※ツリーのフォルダ選択ダイアログの表示は、ESDB内の登録フォルダが多くなればなるほど重い処理になるので注意 例:"PATH\Incorp.exe" -i -d 例:"PATH\Incorp.exe" -i -d 1111 |
| -p[ostscript][ LFC][ TXTID] (LFC = LineFeedCount) |
追記モードです。任意のテキストの文末に、取り込んだテキストを追記していきます。LFCは追記文の文頭に挿入する改行の数です。LFCのデフォルトは0です。 [ TXTID]にテキストIDを指定すると、指定したテキストに取り込みます。 ※テキストIDを指定するときは、必ず[ LFC]を指定した後に指定してください。 例:"PATH\Incorp.exe" -i -p 例:"PATH\Incorp.exe" -i -p 2 例:"PATH\Incorp.exe" -i -p 2 1111 |
| -t[itle] $TITLE | スレタイトルをフッタに付加します。 -titleオプションの後に半角スペースを空け、タイトルを指定してください。 ※$TITLEでのタイトル取得はJaneのみ 例:"PATH\Incorp.exe" -i -t $TITLE |
| -to[p_title] | -titleコマンドがあるとき、スレタイトルをトップ、すなわちテキストアイテムのタイトルにします。 例:"PATH\Incorp.exe" -i -t $TITLE -to |
| -u[rl] $URL | スレッドのURLをフッタに付加します。 -urlオプションの後に半角スペースを空け、URLを指定してください。 ※$URLでのURL取得はJaneのみ 例:"PATH\Incorp.exe" -i -u $URL |
| -n[ow] | 現在の日時をフッタに付加します。 例:"PATH\Incorp.exe" -i -n |
Janeコマンド(command.dat)設定例
「外部記憶DB」の「ヘルプ/Janeコマンドジェネレーター」から手軽に作成することも出来ます。
選択範囲をESDBで取り込む="C:\Program Files\ExternalStorageDB\Incorp.exe" -i
選択範囲をESDBでフォルダを指定して取り込む="C:\Program Files\ExternalStorageDB\Incorp.exe" -i -d
全レスをESDBでフォルダを指定して取り込む="C:\Program Files\ExternalStorageDB\Incorp.exe" -i -d -a
選択範囲をESDBでフォルダを指定して取り込む(フッタ付き)="C:\Program Files\ExternalStorageDB\Incorp.exe" -i -d -n -t $TITLE -u $URL
全レスにタイトルを付けESDBでフォルダを指定して取り込む(フッタ付き)="C:\Program Files\ExternalStorageDB\Incorp.exe" -i -d -a -n -t $TITLE -to -u $URL
選択範囲をESDBで取り込む(追記モード)="D:\delphi\ExternalStorageDB\ExternalStorage\Incorp.exe" -i -p 2
選択範囲をESDBでフォルダを指定して取り込む(追記モード)="D:\delphi\ExternalStorageDB\ExternalStorage\Incorp.exe" -i -d -p 2
選択範囲をESDBでフォルダを指定して取り込む="C:\Program Files\ExternalStorageDB\Incorp.exe" -i -d
全レスをESDBでフォルダを指定して取り込む="C:\Program Files\ExternalStorageDB\Incorp.exe" -i -d -a
選択範囲をESDBでフォルダを指定して取り込む(フッタ付き)="C:\Program Files\ExternalStorageDB\Incorp.exe" -i -d -n -t $TITLE -u $URL
全レスにタイトルを付けESDBでフォルダを指定して取り込む(フッタ付き)="C:\Program Files\ExternalStorageDB\Incorp.exe" -i -d -a -n -t $TITLE -to -u $URL
選択範囲をESDBで取り込む(追記モード)="D:\delphi\ExternalStorageDB\ExternalStorage\Incorp.exe" -i -p 2
選択範囲をESDBでフォルダを指定して取り込む(追記モード)="D:\delphi\ExternalStorageDB\ExternalStorage\Incorp.exe" -i -d -p 2
※コンテキストメニュー名とファイルパスは適当に変更してお使いください。
参考
コマンド [2ちゃんねる専用ブラウザ「Jane Style」オンラインヘルプ]FireFoxから取り込み機能利用サンプル
FireFoxアドインのJSActionsなどを用いることにより、外部記憶DBに任意の文字列を取り込むことが出来ます。詳しい導入方法は、リンク先にあります。
以下のサンプルを自由に編集してお使いください。
■外部記憶DBにタイトル、URL、現在日時を追記.jssend_to_exdb_title_and_url();
function send_to_exdb_title_and_url()
{
//pathをお使いの環境のものに設定してください(\を\\にすること)
var path = 'C:\\Program Files\\ExternalStorageDB\\Incorp.exe';
var docURL = window.content.document.URL;
var docTitle = window.content.document.title;
if(_jsaCScript.context.onLink){
docTitle = _jsaCScript.context.link.textContent;
docURL = _jsaCScript.context.link.href;
}
if(docTitle){
var UConvIF = Components.
interfaces.nsIScriptableUnicodeConverter;
var UConv = Components.classes
['@mozilla.org/intl/scriptableunicodeconverter'].
getService(UConvIF);
UConv.charset = 'Shift_JIS';
docTitle = UConv.ConvertFromUnicode(docTitle);
}
while (docTitle.indexOf(' ') != -1) {
docTitle = docTitle.replace(' ',' ');
}
//引数となるコマンドを設定してください
var arg ="-i -p 1 -n -s "+ docTitle + "\r\n" + docURL;
_jsaCScript.exec(path , arg);
}
※杜の住人さんに掲示板にて提供して頂きました。ありがとうございます。■外部記憶DBに選択文字列、タイトル、URL、日時を追記.js
send_to_esdb_selectedText_title_url_datetime();
function send_to_esdb_selectedText_title_url_datetime(){
//pathをお使いの環境のものに設定してください(\を\\にすること)
var path = 'C:\\Program Files\\ExternalStorageDB\\Incorp.exe';
var docURL = window.content.document.URL;
var docTitle = window.content.document.title;
if(_jsaCScript.context.onLink){
docTitle = _jsaCScript.context.link.textContent;
docURL = _jsaCScript.context.link.href;
}
//引数となるコマンドを設定してください
var arg ="-i -n -p 2 -t " +
convert_to_shiftjis_and_space_zenkakuka(docTitle) +
" -u " + docURL
_jsaCScript.exec(path , arg);
}
function convert_to_shiftjis_and_space_zenkakuka(str){
if (str){
var UConvIF = Components.interfaces.
nsIScriptableUnicodeConverter;
var UConv = Components.classes
['@mozilla.org/intl/scriptableunicodeconverter'].
getService(UConvIF);
UConv.charset = 'Shift_JIS';
str = UConv.ConvertFromUnicode(str);
while (str.indexOf(' ') != -1) {
str = str.replace(' ',' ');
}
}
return str;
}
※杜の住人さんに掲示板にて提供して頂きました。ありがとうございます。■ユーザーがクリップボードに任意の文字列を送るサンプル.js(修正版)
※↓のスクリプトの修正版です。YU-TANGさんに提供して頂きました。ありがとうございます。
■ユーザーがクリップボードに任意の文字列を送るサンプル.js
※↓のような<pre>タグ内の文字列を選択した場合は、改行が半角スペースになってしまいます。解決策を色々検索したのですが分かりませんでした。どなたか解決策を御存知の方おられましたら、御教授お願いします。
send_seltext();
function send_seltext()
{
//pathをお使いの環境のものに設定してください(\を\\にすること)
var path = 'D:\\delphi\\ExternalStorageDB\\ExternalStorage\\Incorp.exe';
var docURL = window.content.document.URL;
var docTitle = window.content.document.title;
if(_jsaCScript.context.onLink){
docTitle = _jsaCScript.context.link.textContent;
docURL = _jsaCScript.context.link.href;
}
var nowdate = new Date();
var docSelText = window.getSelection().toString();
//copytextに好きな文字列をセット
var copytext =
docSelText + "\r\n\r\n" +
"TITLE:" + docTitle + "\r\n" +
"URL:" + docURL + "\r\n" +
"DATE:" + nowdate.getFullYear() + "/" +
nowdate.getMonth() + "/" +
nowdate.getDay() + " " +
nowdate.getHours() + ":" +
nowdate.getMinutes() + ":" +
nowdate.getSeconds();
//クリップボード処理
var str = Components.classes["@mozilla.org/supports-string;1"]
.createInstance(Components.interfaces.nsISupportsString);
if (!str) return false;
str.data=copytext;
var trans = Components.classes["@mozilla.org/widget/transferable;1"]
.createInstance(Components.interfaces.nsITransferable);
if (!trans) return false;
trans.addDataFlavor("text/unicode");
trans.setTransferData("text/unicode",str,copytext.length*2);
var clip = Components.classes["@mozilla.org/widget/clipboard;1"]
.createInstance(Components.interfaces.nsIClipboard);
if (!clip) return false;
clip.emptyClipboard(clip.kGlobalClipboard);
clip.setData(trans,null,clip.kGlobalClipboard);
//ユーザーが編集したクリップポードの文字列を
//送るときは-cオプションを含めること。
//他のオプションは自由に設定してください。
var args = "-i -c";
_jsaCScript.exec(path , args);
}
アプリから取り込み機能利用サンプル
フォーム
ソース
{/////////////////////////////////////////////////
「外部記憶DB」テキスト取り込みサンプル
使用法
エディットで右クリックからメニューを選択してください
usesにShellApiを追加してShellExecute等を使って
コマンドを指定してIncorp.exeを起動してやると
アプリから「外部記憶DB」の取り込み機能を
利用することが出来ます。
コマンドライン
http://netakiri.net/soft/esdb_cmd.shtml
/////////////////////////////////////////////////}
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, ActnList, ComCtrls, ShellApi;
type
TForm1 = class(TForm)
PopupMenu1: TPopupMenu;
ActionList1: TActionList;
IncorpSelAction: TAction;
IncorpAllAction: TAction;
IncorpSelAction1: TMenuItem;
IncorpAllAction1: TMenuItem;
RichEdit1: TRichEdit;
procedure IncorpSelActionUpdate(Sender: TObject);
procedure IncorpSelActionExecute(Sender: TObject);
procedure IncorpAllActionExecute(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.IncorpSelActionUpdate(Sender: TObject);
begin
IncorpSelAction.Enabled := RichEdit1.SelText <> '';
end;
procedure TForm1.IncorpSelActionExecute(Sender: TObject);
begin
//選択テキストをフォルダ指定して取り込む
ShellExecute(Handle, 'open', 'Incorp.exe', '-i -d', nil, SW_HIDE);
end;
procedure TForm1.IncorpAllActionExecute(Sender: TObject);
begin
//全てのテキストをフォルダ指定して取り込む
ShellExecute(Handle, 'open', 'Incorp.exe', '-i -d -a -n', nil, SW_HIDE);
end;
end.
ダウンロード
サンプルソースCopyright 2003-2013 yhira Some Rights Reserved.
[Server] [Delphi Tips] [Rails3 Tips]
最終更新:2012/01/24 20:46:12
