重複データを取り出すマクロNo.24232
emc827 さん 07/12/27 12:40
 
winxp he sp2, hidemaru 5.18
やりたい事:
銘柄listと基準listから重複listを作成するマクロを教えてください。
bb.txt:外部file 
銘柄コード(4桁固定) 銘柄名は一体です。データは沢山あります。

aa.txt  --銘柄list 約250個
1744,キョーエイ
1815,鉄建建設
1948,弘電社
1967,ヤマト
1986,日商インター
2143,秀文社
2151,タケエイ
2155,カービュー

bb.txt  --基準list 約1500個
1814,大末建設
1815,鉄建建設
1965,テクノ菱和
1967,ヤマト
1968,太平電業
1969,高砂熱学工業
2131,(株)アコーディア・ゴルフ
2151,(株)タケエイ
2168,(株)パソナグループ
2201,森永製菓
2202,明治製菓

cc.txt  --重複list
1815,鉄建建設
1967,ヤマト
2151,(株)タケエイ

よろしくお願いします。

[ ]
RE:24232 重複データを取り出すマクロNo.24235
秀丸担当 さん 07/12/27 15:45
 

時間がかかるかもしれないですが以下のようなマクロでどうでしょうか。

#h=hidemaruhandle(0);
gofiletop;
setclipboard "";
while(1){
 searchdown2 "^[0-9][0-9][0-9][0-9],",regular;
 if(!result)break;
 getsearch;
 nexthidemaru;
 gofiletop;
 searchdown searchbuffer;
 if(result!=false){
  selectline;
  appendcopy;
 }
 setactivehidemaru #h;
 right;
}
newfile;
paste;

[ ]
RE:24235 重複データを取り出すマクロNo.24237
emc827 さん 07/12/27 18:11
 
ありがとう御座います。
結果はNGでした。excelマクロ 一瞬です。
詳細:
aa.txt bb.txt 同じdirectryに置く
・データの小さいaa.txtを開き、マクロを実行。結果はNGです。excel結果と違う。
ほとんどaa.txtが表示された。
・データの大きいbb.txtを開き、マクロを実行。20分経っても終了せず、途中でstop
した。
・操作手順がおかしい?

改善提案:
・aa.txtの最後にbb.txtを読み込む。1つのfileにする。
・このfileから、重複データを抽出するマクロを作成。
・この方がsimpleなマクロになりませんか。どうでしょうか。


[ ]
RE:24237 重複データを取り出すマクロNo.24239
秀丸担当 さん 07/12/27 18:38
 

>ありがとう御座います。
>結果はNGでした。excelマクロ 一瞬です。
>詳細:
>aa.txt bb.txt 同じdirectryに置く
>・データの小さいaa.txtを開き、マクロを実行。結果はNGです。excel結果と違う。
>ほとんどaa.txtが表示された。
>・データの大きいbb.txtを開き、マクロを実行。20分経っても終了せず、途中でstop
>した。
>・操作手順がおかしい?

書き忘れましたが、aa.txtとbb.txtの2つを開いた状態で実行してください。


>改善提案:
>・aa.txtの最後にbb.txtを読み込む。1つのfileにする。
>・このfileから、重複データを抽出するマクロを作成。
>・この方がsimpleなマクロになりませんか。どうでしょうか。

そのほうが効率的かもしれないですね。
そう言われるたびにマクロを作るわけにもいかないので、以前にもマクロを作ら
れたご経験があるようですので、他のマクロを参考にするなどをしてみてくださ
い。

uniqコマンドがあれば、プログラム実行で
run "sort.exe <con >con";
nexthidemaru;
run "uniq.exe -d <con >con";
の二回で簡単にできるかもしれないです。

[ ]
RE:24237 重複データを取り出すマクロNo.24240
アルビレオ さん 07/12/27 18:52
 
ユーザーのアルビレオです。

「こういうのは Excel などの表計算ソフトを使った方が楽だと思う」と書こう
と思ったら、すでにやってるんですね。(^^;;;
大量のデータをソートしたり、列単位の要素を比較計算などといった処理は、や
っぱりそういう目的で作られたソフトを利用した方が高速で手間もかからないと
思いますよ。

[ ]
RE:24239 重複データを取り出すマクロNo.24241
秀丸担当 さん 07/12/27 20:22
 
>そう言われるたびにマクロを作るわけにもいかないので

と書いておいてなんですが、言われたような改善提案であれば一瞬で終わります。
あらかじめ2つを混ぜたテキストの上で実行してください。
V6.xx以降で動きます。
V5.18では、一行目をコメントにして[その他]→[動作環境]→[検索]の検索での表示
を「範囲選択」にしてから実行してください。

setcompatiblemode 0x0200;
disabledraw;
selectall;
run "sort <con >con";
gofiletop;
setclipboard "";
while(1){
 searchdown2 "^([0-9][0-9][0-9][0-9],).*\\n(?=\\1)",regular;
 if(!result)break;
 appendcopy;
 right;
}
newfile;
paste;

[ ]
RE:24239 重複データを取り出すマクロNo.24242
emc827 さん 07/12/27 20:22
 
>書き忘れましたが、aa.txtとbb.txtの2つを開いた状態で実行してください。
aa 90個 bb 1659個 5分 excelと同じ結果:okです。
時間短縮のため、2つを最小化して実行 どうでしょうか
理由:excelより軽くて、使い勝手がいいからです。2分なら待てます。

>uniqコマンドがあれば、プログラム実行で
>run "sort.exe <con >con";
>nexthidemaru;
>run "uniq.exe -d <con >con";
>の二回で簡単にできるかもしれないです。
上記長いので、これも検討してみます。
結果は別途します。

[ ]
RE:24241 重複データを取り出すマクロNo.24243
emc827 さん 07/12/27 20:53
 
hidemaru v7.07 早速downloadしました。
マクロ結果 excelと同じ okです。すぐ終わりました。
excelより軽くて、使い勝手がよいです。
希望の通りできました。
ありがとう御座いました。


[ ]
RE:24241 排他データを取り出すマクロ:追No.25222
emc827 さん 08/08/01 04:52
 
重複データを取り出す このマクロ大変重宝しています。
追加願い:
排他データを取り出すマクロを教えてください。

よろしくお願いします。


[ ]
RE:25222 排他データを取り出すマクロ:追No.25223
秀丸担当 さん 08/08/01 11:52
 

>重複データを取り出す このマクロ大変重宝しています。
>追加願い:
>排他データを取り出すマクロを教えてください。
>
>よろしくお願いします。

排他データとは、重複していないデータのことでしょうか。
以下のような感じでどうでしょうか。

disabledraw;
selectall;
run "sort <con >con";
replaceall "^([0-9][0-9][0-9][0-9],).*\\n\\1.*\\n","",regular;

[ ]
RE:25223 希望通りできましたNo.25224
emc827 さん 08/08/01 14:31
 
便利なマクロ ありがとう御座いました。


[ ]