0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
| // インターネット上の ftp:/http: ファイル検索:選択文字列をファイル名として FileMirrors.com で検索する
// TAB=4
// 実行には PPA.DLL が必須です。sakura.exe と同じフォルダに PPA.DLL を入れておいてください。
// マクロファイルの拡張子は .PPA でなくてはなりません。
// http:プロトコルとの関連付けを使用して検索ページを表示させます。
//
// 関連付けの設定がおかしい、などでうまく動作しない場合は Shell の行(関連付けでの起動)を
// 注釈にして Exec の行(Webブラウザの実行ファイルを直接指定して実行)を有効にして使用して
// みてください。
// (その場合、環境に合わせて Exec 中の 'C:\Program Files\Internet Explorer\IEXPLORE.EXE'
// を書き換える必要があります。)
var
url:String; // 文字列変数 url を用意
word,types:String; // 文字列変数 word,type を用意
num:Integer; // 整数数値変数 num を用意
bef,aft,tmp:String; // 文字列変数 bef,aft,tmp を用意
chn,pt:Integer; // 整数数値変数 chn,pt を用意
begin
// // 表示件数 - 無し
// num := 10; // 10件ずつ表示
// // num := 20; // 20件ずつ表示
// // num := 30; // 30件ずつ表示
// // num := 50; // 50件ずつ表示
// 検索条件
types := 'contains'; // contains 指定文字列を含んでいる物すべて
// types := 'equals'; // equals 指定文字列と完全に一致する物のみ
// types := 'begins'; // begins with 指定文字列で始まる物のみ
// types := 'ends'; // ends with 指定文字列で終わる物のみ
word := Trim(S_GetSelectedString(0)); // 文字列変数 word に「“選択部分の文字列”から先頭と末尾のスペースを削除した文字列」を取得
// -------------------------------------------------- //
// 文字列 word 内の記号を置換する。
for chn :=1 to 7 do // 7種類の置換を順におこなう。
begin //{
case chn of //{
1: begin bef:='%'; aft:='%25'; end; // ループ1回目では '%' ⇒ '%25' 変換
2: begin bef:='#'; aft:='%23'; end; // ループ2回目では '#' ⇒ '%23' 変換
3: begin bef:='&'; aft:='%26'; end; // ループ3回目では '&' ⇒ '%26' 変換
4: begin bef:='='; aft:='%3D'; end; // ループ4回目では '=' ⇒ '%3D' 変換
5: begin bef:='?'; aft:='%3F'; end; // ループ5回目では '?' ⇒ '%3F' 変換
6: begin bef:='+'; aft:='%2B'; end; // ループ6回目では '+' ⇒ '%2B' 変換
7: begin bef:=' '; aft:='+' ; end; // ループ7回目では ' ' ⇒ '+' 変換
end; //}
// ↓文字列 word の中の文字 bef を aft に置換する。
tmp := '';
while True do // 無限ループ
begin //{
pt := pos(bef,word); // word の中から bef の場所を探す。
if pt=0 then break; // bef が見つからないならループを脱出する。
tmp := tmp + Copy(word,1,pt-1) + aft; // tmp の後ろに「word 内の bef の前までの文字列」+「置換後の文字列 aft」を連結する。
word := Delete(word,1,pt+Length(bef)-1 ); // word の内容を「word 内の bef の後ろの文字列」に変更する。
end; //}
word := tmp + word; // word := 「置換作業が完了した文字列 tmp」 + 「一番後ろの bef よりも後ろの残り部分」
end; //}
// -------------------------------------------------- //
if word <> '' then // 選択中の文字列があった(またはカーソル位置に単語があった)なら
begin
// FileMirrors 検索ページの URL を生成 ⇒ 文字列変数 url に格納
url := 'http://www.filemirrors.com/search.src?type=' + types + '&file=' + word ; // + '&perpage=' + IntToStr(num);
// ↓Webブラウザの実行ファイル(この場合は Internet Explorer)を直接指定して実行する場合
// Exec( 'C:\Program Files\Internet Explorer\IEXPLORE.EXE' , url , 0 );
// ↓(http:プロトコルに対する)関連付けにて実行する場合
Shell( url , '' );
// ※ Shellで使っている「プロトコルとの関連付け」は Internet Explorer によって提供される機能です。
// 「Windows 95 で Internet Explorer をインストールしていない」などの環境では動作しません。
// 例えば「Win95 で IE は入れていない。Netscape しか入っていない」という場合は素直に
// 「Exec を使用して、Netscape.exe を指定する」ようにして下さい。
end;
end;
|