同一タイトルが複数ある場合の処理No.03969
恭平 さん 03/11/22 13:53
 
おたずねします。分かりにくい題名で申しわけありません。
下記の例のように、英数字の行と文字の行がセットになっている
ものが複数ある場合、一つだけ残して、他は削除したいのですが、
そういうことは可能でしょうか。文字の部分は同じですが、
それ以外は少しづつ違います。
こうしたセットが30個くらいあるテキストで、文字が同じ部分は少なくて5個、多
いと20個くらいになります。
よろしくお願いします。
少なくとも重複する文字部分の行だけでも削除できれば助かります。
よろしくお願いいたします。


http://373news.com/index.php.html ))--- 2003/11/22
:   「島唄、心癒す」 鹿児島市の障害者施設でライブ

http://373news.com/2000picup/2003/11/picup_20031121_11.htm ))--- 2003/11/21
:   「島唄、心癒す」 鹿児島市の障害者施設でライブ

http://373news.com/2000picup/2003/11/picup_20031121_2.htm ))--- 2003/11/21
:   「島唄、心癒す」 鹿児島市の障害者施設でライブ


[ ]
RE:03969 追加しますNo.03970
恭平 さん 03/11/22 15:06
 
>下記の例のように、英数字の行と文字の行がセットになっている
>ものが複数ある場合、

文字行には、下記のように、半角数字や半角括弧が含まれている場合もあります。よ
ろしくお願いいたします。

障害者対象に自動車免許「バリアフリーお遍路の旅」講座 県内3カ所(10日付)
第23回大分国際車いすマラソン大会

[ ]
RE:03970 追加しますNo.03971
秀まるお2 さん 03/11/22 18:13
 
 マクロについての質問かと思いますが、こうそう操作を行う場合のやり方を1
つを連絡させていただきますと…

 まず、「マクロ」メニュー内に、「キー操作の記録開始/終了」というコマン
ドがあります。それを使って、特定の操作を記録します。

 今回の例なら、

 1.「キー操作の記録開始/終了」で記録開始。
 2.検索コマンドで、"「島唄、心癒す」"を検索する。
 3.Homeキーを押して、
 4.上矢印キーを押して
 5.Shift+下矢印キーを3回押して
 6.Deleteキーを押す
 7.「キー操作の記録開始/終了」で記録を終了。

 とします。あとは、「マクロ・キー操作の再生」にて、先ほど記録したキー操
作(検索して3行削除の操作)を適当に繰り返せばいいと思います。行きすぎて
しまうと関係ないところが削除されてしまうので、そのときは「編集・やり直
し」コマンドで戻していけばいいです。

 僕自身はこういう操作を日常的にやってます。

------------------
 しいて、上記のような操作をちゃんとマクロを作ってやりたいってことでした
ら、先ほどの操作にてキー操作を記録してから、「マクロ・キー操作の保
存...」として、保存されたマクロに少し手を加えればいいです。

[ ]
RE:03971 追加しますNo.03972
encodingshiftjis さん 03/11/22 22:20
 
重複の削除なら、マクロ集にもあると思いますが
たとえば

キーマクロの以下を繰り返して
 searchdown "^:" , regular, nocasesense;
 if( ! result )  beep;
 beginsel;
 golineend;
 cut;
 up;
 paste;
 insert "\t";
タイトル+URL の1行化して別名保存します。
SORTコマンドでソートします
前後行をタイトル部の比較して重複行を削除します
1行化した行を2行に戻します。

(データベースソフトなら DISTINCT 指定)

[ ]
RE:03969 同一タイトルが複数ある場合の処No.03973
山紫水明 さん 03/11/23 13:47
 
 恭平さん,こんにちは。

 秀まるおさんの教示で解決されたのであれば,蛇足かも知れませんが。
 一般的に重複行を削除するだけでしたら,次のマクロでいけるでしょう。

//-----------------------------------
//重複行の整理
disabledraw;
gofiletop;
while( code != eof ) {
    #line = lineno;
    beginsel;
    golineend2;
    $s = gettext( seltopx, seltopy, selendx, selendy );
    if( $s != "" ) {
      while(1) {
          searchdown $s;
          if( result ) {
              deleteline;
              up;
          } else break;
      }
    }
    movetolineno 1, #line + 1;
    if( lineno == #line ) break;
}
endmacro;
//-----------------------------------

 もし,サンプルのように2行+改行で1セットになっており,かつファイルの
初めからデータが並んでおり,2行目が同じものがあればセットごと削除したい
ということでしたら,

//-----------------------------------
//重複セットの整理
disabledraw;
gofiletop;
while( code != eof ) {
    movetolineno 1, #line + 1;
    #line = lineno;
    beginsel;
    golineend2;
    $s = gettext( seltopx, seltopy, selendx, selendy );
    if( $s != "" ) {
      while(1) {
          searchdown $s;
          if( result ) {
              up;
              deleteline;
              deleteline;
              deleteline;
              up;
          } else break;
      }
    }
    movetolineno 1, #line + 1;
    if( lineno == #line ) break;
}
endmacro;
//-----------------------------------

     では, (^^)/~
                                        山紫水明

[ ]
RE:03973 同一タイトルが複数ある場合の処No.03974
恭平 さん 03/11/24 00:44
 
山紫水明さん、秀まるお2さん、encodingshiftjis さんのみなさん
ありがとうございました。
なまいきにも、いろいろ試させていただきましたが、
山紫水明さんのマクロを使わせていただくことにしました。
お世話になります。

[ ]