[スレッド全体]

2008/7/29 (火) 02:17:31  
[431] Re:英単語をキャピタライズする

−− つづき −−
    // 置き換え処理
    repeat
        S_SearchNext( '\b[a-zA-Z]+(?=\b)', 22 )     // 半角英単語を検索
        if( S_IsTextSelected = 0 ) then break;      // 単語が無ければ終了

        // 選択範囲ありの場合、範囲内の単語のみ置き換え対象とする
        if( selectMode <> 0 ) then
            begin
                // 単語が選択範囲の終了位置をはみ出しているなら置き換え終了
                if(( areaLineTo < S_GetSelectLineTo ) or (( areaLineTo = S_GetSelectLineTo ) and ( areaColmTo < S_GetSelectColmTo ))) then
                    begin
                        // 選択範囲の次行に移動する
                        S_Jump( areaLineTo, 0 );
                        S_Down();
                        break;
                    end;

                if( selectMode = 2 ) then
                    begin
                        // 単語が選択範囲をはみ出している場合は置き換えない
                        if( areaColmFrom > S_GetSelectColmFrom ) then continue;
                        if( areaColmTo < S_GetSelectColmTo ) then continue;
                    end;
            end;

        S_CancelMode();
        S_SearchNext( '\b[a-zA-Z]', 22 );   // 半角英単語の先頭を検索
        S_ToUpper();        // 大文字に変換

        S_SearchNext( '(?<=[a-zA-Z])[a-zA-Z]*(?=\b)', 22 );     // 2文字目以降を検索
        S_ToLower();        // 小文字に変換

        // 選択範囲なしの時は1回で終了する
        if( selectMode = 0 ) then
            begin
                // 選択の見映えを戻すために半角英単語を選択し直した後
                // 右に移動して選択状態をキャンセルする
                S_SearchPrev( '\b[a-zA-Z]+(?=\b)', 22 );
                S_Right();
                break;
            end;
    until False;
end;
なすこじ
Mozilla/4.8 (Macintosh; U; PPC)

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