[スレッド全体]

2012/8/10 (金) 00:13:17  
[559] Re:編集中のファイルパスを遡ってGrep

<400>相対パスにある同名のCもしくはHファイルを..
を参考に作成してみました(初マクロ)

// カーソル語をルート直下SubDirでGrep
// TAB=4
// 実行には PPA.DLL が必須です。sakura.exe と同じフォルダに ppa.dll を入れておいてください。
// マクロファイルの拡張子は .PPA でなくてはなりません。

var                // 変数を確保する場所
        NewPath:String;
        FullPath:String;
        PDir,Dir,Fname,Ext:String;
        pt:Integer;                // 整数数値変数
        NL:String;
        CurWord:String;
begin        // ここより処理内容        //{
        // ↓改行を用意
        NL := '
';
        FullPath := S_GetFilename();        // 編集中のファイル名を取得する
        CurWord := S_ExpandParameter('$C');        //

        // フルパスファイル名(FullPath)をディレクトリ(Dir)とファイル名(Fname)に分離する。
        Fname := FullPath;
        Dir := '';
        repeat        //{
                pt := Pos( '\' , Fname );
                if( pt > 0 ) then        begin
                        Dir   := Dir + Copy  ( Fname , 1 , pt );
                        Fname :=       Delete( Fname , 1 , pt );
                end;
        until ( pt <= 0 );        //}

        // ディレクトリ(Dir)を親ディレクトリ(PDir)とディレクトリ(Dir)に分離する。
        if ( Length(Dir) > 3 )        then        Dir := Delete(Dir,Length(Dir),1);
        PDir := '';
        repeat        //{
                pt := Pos( '\' , Dir );
                if( pt > 0 ) then        begin
                        PDir := PDir + Copy  ( Dir , 1 , pt );
                        Dir  :=        Delete( Dir , 1 , pt );
                end;
        until ( pt <= 0 );        //}

        NewPath := PDir ;

//         // ↓for デバッグ
//         MessageBox(
//         '[' + NewPath                + ']' + NL +
//         '[' + FullPath                + ']' + NL +
//         '[' + PDir                        + ']' + NL +
//         '[' + Dir                        + ']' + NL +
//         '[' + Fname                        + ']' + NL +
//         '' , '確認' , 0 );

        // NewPath が空で無ければ開く
        if (NewPath <> '')        then        S_Grep(CurWord,'*.cpp;*.c;*.h',NewPath,1);
end;
//}
つんつく
Mozilla/5.0 (Windows NT 6.1; rv:12.3) Gecko/20120717 Firefox/12.3 PaleMoon/12.3

[▼次のスレッド]
INCM/CMT
Cyclamen v3.81