マクロの間違いを教えてくださいNo.07471
可愛村龍滋 さん 14/10/05 16:14
 
映画情報サイトの文から必要の部分を抜き出したいのですが、思うようにマクロが作
れません。誤りを教えてください。

◎第一

そう、やっぱり“かわいい子には旅をさせろ”です。
運営会社
利用規約
プライバシーポリシー
お問い合わせ
広告掲載
モバイルビュー
(c) Kinema-Junposha.Co.Ltd All right reserved.(文末)

 運営会社 から 文末までを消したいのですが、下記のマクロだと全文が消えます。

 searchdown"運営会社";
 beginsel;
 gofileend;
 cut;

◎第二
 じゃっくん
 鑑賞日 2013/09/30
 登録日 2013/10/01
 評点 78
 鑑賞方法 パッケージ/DVD/レンタル
 いつかどこかで根を張ればいい。
 Like0

鑑賞日 登録日 鑑賞方法 Like の各行を削除したいのですが、

replaceallfast "^鑑賞日 [0-9]{4}/[0-9]{2}/[0-9]{2}\\n", "", regular;
replaceallfast "^登録日 .+\\n", "", regular;
replaceallfast "^鑑賞方法 .+\\n", "", regular;
replaceallfast "^Like.+\\n", "", regular;

Likeの行は削除できるのに、ほかの行が消えません

◎第三
 Q&A(文頭)
 パスワードを忘れた方はこちら
   --中略--
     --------
 飛行機  1,683
 その他  17,209
 百万円と苦虫女

文頭から、その他 17,209までの行を削除したいのですが、
 gofiletop;
 beginsel;
 searchdown"その他 ";
 cut;
これも全文が削除されます。

[ ]
RE:07471 マクロの間違いを教えてくださいNo.07472
秀まるお2 さん 14/10/06 16:50
 
>  searchdown"運営会社";
>  beginsel;
>  gofileend;
>  cut;

    searchdown "(?<=運営会社)", regular;
    if( selecting ) {
        escape;
    }
    beginsel;
    gofileend;
    delete;

 でいいんじゃないかと思います。「運営会社」の後ろにカーソル移動させるの
がコツです。if( selecting ) .. の処理は、検索でヒットした文字列を選択す
る設定というのがあるのでもしそういう設定でもってことを考えると必要な処理
になります。(またはsetcompatiblemodeでも回避出来ますが)

> ◎第二
>  じゃっくん
>  鑑賞日 2013/09/30
>  登録日 2013/10/01
>  評点 78
>  鑑賞方法 パッケージ/DVD/レンタル
>  いつかどこかで根を張ればいい。
>  Like0
>
> 鑑賞日 登録日 鑑賞方法 Like の各行を削除したいのですが、
>
> replaceallfast "^鑑賞日 [0-9]{4}/[0-9]{2}/[0-9]{2}\\n", "", regular;
> replaceallfast "^登録日 .+\\n", "", regular;
> replaceallfast "^鑑賞方法 .+\\n", "", regular;
> replaceallfast "^Like.+\\n", "", regular;

    replaceallfast "^ *(鑑賞日|登録日|鑑賞方法|Like).*\\n", "", regular;

 の1行でいけるんじゃないかと思います。「鑑賞日」とかの前に半角空白が1
つ入ってるので、それも含めてヒットするようにしないとダメかと思います。

> ◎第三
>  Q&A(文頭)
>  パスワードを忘れた方はこちら
>    --中略--
>      --------
>  飛行機  1,683
>  その他  17,209
>  百万円と苦虫女
>
> 文頭から、その他 17,209までの行を削除したいのですが、
>  gofiletop;
>  beginsel;
>  searchdown"その他 ";
>  cut;
> これも全文が削除されます。

 文頭が必ず「Q&A」で始まってて、最後の行の先頭が必ず「その他」になって
るならば、ですが、

    replaceallfast "(?#maxlines:99)^ *Q&A.*\\n(.*\\n)* *その他.*\\n", ""
                 , regular;

 でいいんじゃないかと思います。

 具体的なインプットデータが分からないので、その辺憶測で書いてますけども。

[ ]
RE:07471 マクロの間違いを教えてくださいNo.07473
山紫水明 さん 14/10/06 20:14
 
 可愛村龍滋さん,

 秀まるおさんは一挙に高度なマクロをお示しのようですね。

>誤りを教えてください。

 第一のマクロについては私が実行した限りでは,うまくいきます。
 「全文が消え」というのは,検索が失敗しているのが原因だと思います。デー
タに間違いはないでしょうか?

 第二のマクロについても成功します。これもデータが違うとしか考えられませ
ん。もしかしたら,見かけ上の空白が実際にはタブであるとか。

第三についてもこれでいいはずですが,「全文が削除され」というのは不可解です。

 なお,削除するのに cut 文をお使いになっていますが,単なる削除であれば,
delete 文を使うのが普通です。cut は後で貼り付けするときに使います。

                    山紫水明
                    SANSHISUIMEI

[ ]
RE:07473 マクロの間違いを教えてくださいNo.07474
可愛村龍滋 さん 14/10/12 18:58
 
助言をいただき有り難うございました。

秀まるおさん、山紫水明さんのマクロを試しましたが、意図のように動きません。

>これもデータが違うとしか考えられません。もしかしたら,見かけ上の空白が実際
>にはタブであるとか。

ホームページからダウンしたものを、山紫水明さんの「行頭・行末の空白および空白
行を削除するマクロ    Ver.1.01」で変換した後、手動で、置換を行うと削除できま
す。行頭にはタブも空白もないことを確認しました。

 ^鑑賞日.+$ (左のものを打ち込みました。)

下記のマクロでは、どの行も削除されませんでした。

replaceallfast "^(鑑賞日|登録日|鑑賞方法|Like).+$", "", regular;

テキストのエンコードというものを考慮する必要があるのでしょうか?
テキストファイルは(UTF-8) というもので変換されていました。

[ ]
RE:07474 マクロの間違いを教えてくださいNo.07475
山紫水明 さん 14/10/12 20:48
 
 可愛村龍滋さん,

>下記のマクロでは、どの行も削除されませんでした。
>replaceallfast "^(鑑賞日|登録日|鑑賞方法|Like).+$", "", regular;
>テキストのエンコードというものを考慮する必要があるのでしょうか?
>テキストファイルは(UTF-8) というもので変換されていました。

こちらで同じデータをUTF-8で保存したもので試しましたが,問題なく置換さ
れます。とりあえず,マクロの最初に
message "ok";
を追加して,マクロが動いているかどうか確認されてはいかがでしょう。

                    山紫水明

[ ]