[添付ファイル一覧]
[全ページの添付ファイル一覧]
- SearchNoMatchLine.js
- 格納ファイル名:attach/4D6163726F2FC5EAB9C62F323038_5365617263684E6F4D617463684C696E652E6A73
- ページ:Macro/投稿/208
- 格納ファイル名:attach/4D6163726F2FC5EAB9C62F323038_5365617263684E6F4D617463684C696E652E6A73
- MD5ハッシュ値:690516f2be88ba18a153875810528c55
- サイズ:2.2KB (2214 bytes)
- Content-type:application/octet-stream
- 登録日時:2010/01/08 03:27:18
- アクセス数:627
- MD5ハッシュ値:690516f2be88ba18a153875810528c55
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
| |
var CAPTION = Editor.ExpandParameter("$M").replace( /^.*\\/, "" );
if( CAPTION == "" ) CAPTION = "不一致検索";
var bSEARCH_MatchCase = false; var bSEARCH_AutoClose = true;
var bUSE_REGEXP = false;
Main();
function Main()
{
var oSC = new ActiveXObject("ScriptControl"); var s, sOrg, c;
var i;
var nSearchOpt;
oSC.Language = "VBScript";
oSC.AddCode( 'Function InBox(prompt,title,default):InBox=InputBox(prompt,title, default):End Function' );
s = oSC.Run( "InBox",
"指定した文字列を含まない行を検索します。\n" +
"何も入力しない場合、改行のみの行以外が検索されます。\n\n\n" +
"不一致検索する文字列" + ((bUSE_REGEXP) ? "(正規表現)" : "") + ":"
, CAPTION, Editor.ExpandParameter("$C") );
if( typeof s == "undefined" ) return;
if( s != "" ){
if( !bUSE_REGEXP ){
sOrg = s;
s = "";
for(i=0; i < sOrg.length; i++){
c = sOrg.charAt( i );
if( "\\|()[]{}*+?.".indexOf( c ) != -1 ) s += "\\";
s += c;
}
}
// 例:"abc" → "^(?!.*abc)[^\r\n]*(\r\n|\r|\n)?"
s = "^(?!.*" + s + ")[^\\r\\n]*(\\r\\n|\\r|\\n)?";
}else{
// 改行のみ(空白も無し)の行 を不一致検索
s = "^[^\\r\\n]+(\\r\\n|\\r|\\n)?";
}
nSearchOpt = 1<<2; // bit2:正規表現
nSearchOpt |= (!!bSEARCH_MatchCase)<<1; // bit1:英大文字と小文字を区別する
nSearchOpt |= (!!bSEARCH_AutoClose)<<4; // bit4:検索ダイアログを自動的に閉じる
Editor.SearchNext( s, nSearchOpt );
Editor.ReDraw(); // ステータスバーの行・桁の更新
}
|