[あすかぜ・ねっと]あすかぜ・ねっと自作ソフトCassava > サポート掲示板

Cassava Editor サポート掲示板

スレッド一覧に戻る返信

[860] OKリストとの連携

310 [2024/10/08 12:31:47]

いつも利用させていただいております。
20万行くらい*5列のデータがあります。ユーザーのアクセス先のリストです。
ここから、アクセスしてもいい先(OKリスト)に登録されたキーワードを含むURLが入った行を消したいのです。どのようなマクロが使用できますでしょうか?よろしくご教示いただけると幸いです。

Re: [860] OKリストとの連携

あすかぜ [2024/10/08 22:25:36]

列は 5 列とのことですが、その中のどの列にキーワードが入っているかは決まっているでしょうか?
また、キーワードを含む行を残すのではなく、キーワードを含む行を消したいということで間違いないでしょうか?

マクロ開始時にカーソルのある列だけを検索対象として、その列にキーワードを含む行を削除するマクロを書いてみました。
https://www.asukaze.net/soft/cassava/macro/asukaze/bbs860_20241008.cms
20 万行あると処理にだいぶ時間がかかるかもしれません。
このマクロで役に立つでしょうか?

Re: [860] OKリストとの連携

310 [2024/10/09 15:19:14]

あすかぜさま、ありがとうございます。
常に1列目にURL,2列目にユーザID,アクセス日時、URLの分類という並びになります。
消したいURLというのは、アクセスしてもいいURLのことで、いたずら小僧どもがゲームやらなにやら不要なサイトにアクセスしている痕跡をあぶり出したいのです。
消したいURLのキーワードもたぶん100を超えるので1つ1つ入力するのは気が遠くなるので、OKリストから読み込めないかな、と愚考する次第です。

Re: [860] OKリストとの連携

あすかぜ [2024/10/09 21:36:44]

Cassava Editor のマクロからは他のファイルの内容を読み込めないので、OK リストを直接使うことは難しそうです。
「マクロを出力するマクロ」を使うことで、希望に近い動作になるかもしれません。

https://www.asukaze.net/soft/cassava/macro/asukaze/bbs860_20241009.cms.cms
このマクロを「.cms.cms」と 2 つ拡張子がついたファイル名で「Export」フォルダに置いてください(「Macro」フォルダではありません)。
OK リストのファイル(1 列目にキーワードが並んだ CSV ファイル)を Cassava Editor で開き、
[ファイル(F)]-[エクスポート(T)...] を実行して、
ファイルの種類を「bbs860_20241009.CMS 形式 (*.cms)」(エクスポートマクロのファイル名を変更していた場合は対応するもの)にして「保存」を実行してください。
保存された .cms ファイルは今度は「Macro」フォルダに置きます。
最後に、アクセス先リストのファイルを開いて、[マクロ(M)] メニュー内の対応するマクロを実行すると、1 列目にキーワードを含む行が削除されます。

手順が複雑ですが、うまくできるでしょうか。

20 万行 × キーワード 100 個だと 2000 万回の文字列検索が必要となるので、マクロでは時間がかかりすぎるかもしれません。
小さめのファイルで試してみてください。

Re: [860] OKリストとの連携

310 [2024/10/10 15:22:02]

あすかぜさま、お世話になっております。
一日程度かかっていた作業が一時間位まで短縮することができました。日によってアクセス先が違うのでLISTを充実させていけばさらに良くなると確信しています。お忙しいところを対応いただき、まことにありがとうございました。

スレッド一覧に戻る返信