ご存知したら教えてくださいNo.02017
shara さん 98/11/11 02:06
 
はじめまして、いつも「秀丸」にお世話になっております。

さて、実は以前からずっと悩んでいたことがあるのですが、重複した文字列を削除も
しくはその部分をハイライト表示、あるいは別ウィンドウに重複結果を表示してくれ
るなどのマクロ(もしくは検索・置換方法)はありますでしょうか?
具体例を挙げると、
AAAAA・・・・(改行)
BBBBB・・・・(改行)
CCCCC・・・・(改行)
AAAAA・・・・(改行)
のようなケースです。ちなみに、エクセルに落とせば、ソートまでは処理できますの
で、
AAAAA・・・・(改行)
AAAAA・・・・(改行)
のように連続していればできるといった条件付きでも結構です。

宜しくお願いします。

[ ]
RE:02017 ご存知したら教えてくださいNo.02033
番頭++ さん 98/11/12 12:53
 
>AAAAA・・・・(改行)
>AAAAA・・・・(改行)
>のように連続していればできるといった条件付きでも結構です。

ソートをした後に、マクロを実行してください。
あまり早くはありません。

あちきは CBSORT という Clipbord 中のデータをソートするフリーソフトを
使用しています。Vector とかのサイトで探してください。

ただし数千行となると使用には耐えません。
DOS のフリーソートと下記のマクロを C で書いて処理を行なっています。

こんなマクロではいかがですか...

//*4    ・Delete Same Line - 1
pc_delete_line1:
    disabledraw;    disableinvert;
//s setclipboard "";    //  clear
//s gofiletop;  beginsel;   gofileend;  cut;    //  selectall;
//s runsync2 "CBSORT.EXE";
//s paste;
//s gofiletop;
//s setclipboard "";    //  clear
    escape; gofiletop;
    selectline; // delete same line - 行
    $wk1 = gettext(seltopx,seltopy,selendx,selendy);
    escape; down;
    while( code != eof){
        selectline; // delete same line - 行
        $wk2 = gettext(seltopx,seltopy,selendx,selendy);
        escape;
        if( $wk1 == $wk2 ){
            deleteline;
        } else {
            $wk1 = $wk2;    down;
        }
    }
    gofiletop;
    enableinvert;   enabledraw;
endmacro;

[ ]