添付ファイルの情報



[添付ファイル一覧] [全ページの添付ファイル一覧]

fileSearchNoMatchLine.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
アクセス数:486
MD5ハッシュ値:690516f2be88ba18a153875810528c55
fileSearchNoMatchLine.js
  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
/* (Tab=4)
 [概要]
	不一致検索
	指定した文字列を含まない行を検索します。(行単位で検索します。)
	範囲選択されていれば選択範囲(の先頭行のみ)を、
	範囲選択されていなければカーソル上の単語を入力文字列として使用します。
 [変更履歴]
	2010/01/06	新規
*/
 
// メッセージボックスのタイトル (本マクロ名)
var CAPTION = Editor.ExpandParameter("$M").replace( /^.*\\/, "" );
if( CAPTION == "" ) CAPTION = "不一致検索";        // [名前を指定してマクロ実行...]
 
// 検索(検索ダイアログ)のオプション
//	bSEARCH_AutoClose は本マクロの動作とは無関係ですが、
//	チェックOFFで使用されている方は false にしてください。
var bSEARCH_MatchCase = false;        // 英大文字と小文字を区別する
var bSEARCH_AutoClose = true;        // 検索ダイアログを自動的に閉じる
 
// 正規表現を使用するか (true=入力した文字列は、正規表現として扱う)
var bUSE_REGEXP = false;
 
 
Main();
 
function Main()
{
    var oSC = new ActiveXObject("ScriptControl");    // InputBox
    var s, sOrg, c;
    var i;
    var nSearchOpt;
    
    // InputBox
    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();	// ステータスバーの行・桁の更新
}




    


    ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS