添付ファイルの情報



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

fileGREPOPEN.PPA
格納ファイル名:attach/4D6163726F2FC5EAB9C62F313334_475245504F50454E2E505041
ページ:Macro/投稿/134
格納ファイル名:attach/4D6163726F2FC5EAB9C62F313334_475245504F50454E2E505041
MD5ハッシュ値:a6246e672009b94cba55cd40c2d3177c
サイズ:3.1KB (3125 bytes)
Content-type:application/octet-stream
登録日時:2006/07/30 04:40:35
アクセス数:387
MD5ハッシュ値:a6246e672009b94cba55cd40c2d3177c
fileGREPOPEN.PPA
  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
// Grep結果から直接ファイルを関連付け実行する。
 
// TAB=4
// 実行には PPA.DLL が必須です。PPA.DLL を入手して sakura.exe と同じフォルダに入れておいてください。
// マクロファイルの拡張子は .PPA でなくてはなりません。
 
// Grep の結果形式のテキストにてこのマクロを実行すると、
// マクロ実行時の行のファイルが
// ・拡張子が TXT,C,CPP,H ならタグジャンプする
// ・拡張子が DOC,XLS なら関連付け実行する
// ・拡張子が他なら関連付け実行する
// ・行頭からの文字列がファイル名らしくなければ、実行時の位置で単語選択するだけ ※
// という動作を行います。
// 
// ※ このマクロはダブルクリックに割り当てる場合用に作ってあります。
 
var
    str:String;        // 文字列変数 str を用意
    ext:String;        // 文字列変数 ext を用意
    tmps:String;    // 文字列変数 tmps を用意
    pt:Integer;        // 整数数値変数 pt を用意
begin
 
    S_MoveHistSet(0);                // 現在位置を移動履歴に登録
        S_GoLineTop(1);                    // 行頭に移動(折り返し単位) - 行頭のスペースを無視する
        S_Down_Sel(0);                    // (選択)カーソル下移動
        str := S_GetSelectedString(0);    // 選択部分の文字列を取得
        S_CancelMode(0);                // 各種モードの取り消し - [Esc]キーによる選択解除
    S_MoveHistPrev(0);                // 移動履歴: 前へ
 
    // ↑↓移動するとカーソル位置が行頭に行ってしまうようなので、それを防ぐ。
    S_MoveHistSet(0);                // 現在位置を移動履歴に登録
    S_Left(0);                        // カーソル左移動
    S_Right(0);                        // カーソル右移動
    S_MoveHistPrev(0);                // 移動履歴: 前へ
 
    tmps := Copy  (str,1,2);    // 先頭 2文字を tmps に退避
    str  := Delete(str,1,2);    // str からは先頭 2文字を削除
    pt   := Pos(':',str);        // str から : を探す。
 
    if ( pt <> 0 ) then begin    // : があったら( 2文字目以降に : があったという事)
        str := Copy(str,1,pt);    // str := 「 : までの文字列」
 
        // str の後方から ( を探し出す。
        for pt := Length(str) downto 1 do    if( Copy(str,pt,1) = '(' ) then    Break;
        str := Copy(str,1,pt-1);    // str := 先頭 〜 ( の前までの文字列
    end;
    str := Trim( tmps + str );    // str := 「tmps に退避してあった先頭 2文字」 + str
 
    if ( ( str = '' ) or ( Copy(str,2,1) <> ':' ) or ( Length(str) < 3 ) ) then    // ファイル名らしくない場合の処理
        begin
            S_SelectWord(0);    // 現在位置の単語選択
            Exit;    // 文字列が空文字列なら何もせず終了する。
        end
    ;
 
    // str の後方から . を探し出す。
    for pt := Length(str) downto 1 do    if( Copy(str,pt,1) = '.' ) then    Break;
    ext := UpperCase(Copy(str,pt+1,500));    // 拡張子部分を英大文字で文字列変数 ext に取得する
    // MessageBox(ext,'拡張子',0);        // for Debug
 
    if      ( ext = 'TXT' ) then    S_TagJump()        // 拡張子が 'TXT' ならタグジャンプする(このエディタで開く)
    else if ( ext = 'C'   ) then    S_TagJump()        // 拡張子が 'C'   ならタグジャンプする(このエディタで開く)
    else if ( ext = 'CPP' ) then    S_TagJump()        // 拡張子が 'CPP' ならタグジャンプする(このエディタで開く)
    else if ( ext = 'H'   ) then    S_TagJump()        // 拡張子が 'H'   ならタグジャンプする(このエディタで開く)
    else if ( ext = 'DOC' ) then    Shell(str,'')    // 拡張子が 'DOC' なら関連付け実行する Word
    else if ( ext = 'XLS' ) then    Shell(str,'')    // 拡張子が 'XLS' なら関連付け実行する Excel
    else                            Shell(str,'')    // 拡張子が他なら関連付け実行する。
    ;
 
end;
 




    


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