同じ文字を一つにまとめたいのですがNo.03451
集計君 さん 02/10/11 12:11
 
初めまして
今日入会したばかりの堀と申します。
マーケティング調査会社で webリサーチ担当しています
実は CGIプログラムを秀丸で作成しているのですが、
AAAA
AAAA
AAAA

同じ文字が複数行並んでいるテキストを
AAAA
の1行だけにしたいのです

複数行は何行かは決まっていないのです。

これをマクロで設定できますでしょうか?


[ ]
RE:03451 同じ文字を一つにまとめたいのでNo.03455
たけのこ さん 02/10/11 15:58
 
たけのこです。

unix等でいうところのuniqですかな? 作っていて気が付いたんですけど、
deleteline文って、折り返し行は折り返しまでしか消さないんですね。あと、
gettext関数は、範囲選択を解除ちゃうみたい。

あんまり厳密な検証はしてません。



gofiletop;
while((result) && (code != eof)){
  selectline;
  $target = gettext(seltopx, seltopy, selendx, selendy);
  escape;
  #got = false;
  searchdown "^", regular;
  while((result) && (code != eof)){
    #got = true;
    selectline;
    if(gettext(seltopx, seltopy, selendx, selendy) == $target){
      selectline;
      delete;
      up;
    }else{
      break;
    }
    searchdown "^", regular;
  }
}

[ ]
RE:03455 同じ文字を一つにまとめたいのでNo.03459
encodingshiftjis さん 02/10/12 00:23
 
とりあえず、 Cygwin を入れると UNIQ など一そろい入るので
そちらのほうが、大量データ処理には向いていると思いますが。
(本格的な日本語対応ができてないで忍耐が必要です、
困ったときの,英文解説でも平気の人にはよいです)。

データ行(論理行)単位の処理での例を作りました
(selectline はワープロ的 表示行単位です)
比較を限定するとキー比較ぽくなります

gofiletop;
beginsel; golineend2; // selectline; 比較元初期化
 $target0 = gettext(seltopx, seltopy, selendx, selendy);
 right; // searchdown "^", regular; カーソル固定でなければ
while(code != eof){
 menu str(lineno);
beginsel; golineend2; // selectline;
 $target1 = gettext(seltopx, seltopy, selendx, selendy);
  if($target1 == $target0){
beginsel; golinetop2; left; // selectline;
   delete;
   right;
  }else{
  $target0 = $target1;
   right;
  }
 }

[ ]
RE:03459 同じ文字を一つにまとめたいのでNo.03470
集計君 さん 02/10/17 09:55
 
集計君です
遅くなりすみません
お返事ありがとうございました
うまくいきそうです

またよろしくお願いします

[ ]