お尋ねします。No.08153
yamasan さん 01/03/27 10:41
 
こんにちは。高知市の山田と申します。
お願いします。
私、「秀丸」を愛用して1年半ほどになります。
自分で、マクロを作ってみたいのですが、
なかなか、きっかけを掴みかねています。

それで、今回お尋ねしたいのは、
様々なホームページのアドレスを記したテキストファイルがあるとします。
仮に、http://www.1/ ・・・・ http://www.20/
20個ほどアドレスがあるとしまして、
アドレスの最後は、必ず、改行(\n)が入っているものとします。

つまり、
・・・中略・・・
ショップ1
 http://www.1/
         
  専門店2
          ⇒http://www.2/
・・・中略・・・
と言うような具合です。

ですから、httpで始まるアドレスの前には、
矢印や記号、スペース などがあります。
そのファイルの、
文字列 "http://" から "\n"(改行部分)までを検索して、コピーし、
http://および、https:// の2通りを検索して実行できれば最高なのですが。)

その検索文字列の前に、<a href="http://・・・">と入れ、
その検索文字列の後ろに、</a> と入れるような連続作業が、
ファイル内全てにわたって、マクロでできるのでしょうか?
お教えいただけませんでしょうか?

"http://"を検索後、<a href="">http:// に置換して・・・・
とか、やってみたんですが、どうも、スマートじゃないような気がします。

かなり、都合の良すぎる質問と言いますか、お願いなのですが、
お気に入り・ブックマーク的なページを出先から、
簡単にダブルクリックなどのマウス操作で、ページを表示できるように、
htmファイルにして、アップしておけば、とか思っています。

(IEのお気に入りに保存しているのでなく、
  秀丸で.txtとして保存しているものを使いたいのであります。)

なかなか自分では、考えもつきません。
可能か不可か、難しいのか否かも判断が出来ません。
どうぞ、お願い申し上げます。

[ ]
RE:08153 お尋ねします。No.08155
ENCODINGSHIFTJIS さん 01/03/27 11:18
 
>その検索文字列の前に、<a href="http://・・・">と入れ、
>その検索文字列の後ろに、</a> と入れるような連続作業が、
>ファイル内全てにわたって、マクロでできるのでしょうか?

正規表現、置換の前に確認、全置換
検索文字列    http://.+$
置換文字列   <A href="\0">\0</A>

.+$   は行末までの文字列、  \0   はマッチした文字列をあらわします。

https も正規表現を勉強すると同時処理できますが、
次の、ステップでは、この手操作をキー操作の記録、キー操作の保存、して
その .mac を開いて読みましょう。

上の操作の欠点は処理済みの箇所を除外してないので
2回以上すると崩れます。

[ ]
RE:08153 お尋ねします。No.08156
TAKA さん 01/03/27 11:42
 
TAKA です。

>そのファイルの、
>文字列 "http://" から "\n"(改行部分)までを検索して、コピーし、
>(http://および、https:// の2通りを検索して実行できれば最高なのですが。)
>
>その検索文字列の前に、<a href="http://・・・">と入れ、
>その検索文字列の後ろに、</a> と入れるような連続作業が、
>ファイル内全てにわたって、マクロでできるのでしょうか?
>お教えいただけませんでしょうか?

「タグ付き正規表現による置換」を使用して簡単に出来ます。
以下の、たった2行のマクロで出来ます。

// マクロ(ここから)
    replaceallfast "(http|https)://.*", "<a href=\"\\0\">\\0</a>", regular;
    endmacro;
// マクロ(ここまで)

今回のマクロは、アンドゥ操作で1行単位にしか戻りませんが、ア
ンドゥ2回で全て元に戻すことも比較的簡単に出来ます。

ちなみに、マクロのプログラミングに関しては、マクロ作者用の専
用会議室がありますので、次回からはそちらで質問された方がよろ
しいかと思います。

引き続き質問等ありましたら、専用会議室の方でお願いします。

[ ]
RE:08153 お尋ねします。No.08157
ひろ さん 01/03/27 11:54
 
 山田さん今日は、ひろです。
> 文字列 "http://" から "\n"(改行部分)までを検索して、コピーし、
> (http://および、https:// の2通りを検索して実行できれば最高なのですが。)
>
> その検索文字列の前に、<a href="http://・・・">と入れ、
> その検索文字列の後ろに、</a> と入れるような連続作業が、
> ファイル内全てにわたって、マクロでできるのでしょうか?
 この程度ならマクロを組む必要はありません。タグ付き正規表現を使った
置換で出来ます。具体的には、
検索文字列:\<https?://.+
置換文字列:<A HERE="\0"></A>
とし、正規表現を ON にします。

 マクロで書くとしたら、
replaceallfast "\\<https?://.+"," <A HERE=\"\\0\"></A>",regular;
となります。

 P.S アルファベットと数字だけといった制限を加えることも出来ます。

[ ]
RE:08155 お尋ねします。No.08161
yamasan さん 01/03/27 16:25
 
ENCODINGSHIFTJIS さん、有難うございました。

 |  正規表現、置換の前に確認、全置換
 |  検索文字列    http://.+$
 |  置換文字列   <A href="\0">\0</A>
 |  
 |  .+$   は行末までの文字列、  \0   はマッチした文字列をあらわします。
 |  
 |  https も正規表現を勉強すると同時処理できますが、
 |  次の、ステップでは、この手操作をキー操作の記録、キー操作の保存、して
 |  その .mac を開いて読みましょう。

.+$ も \0 も、両方とも知りませんでした。
ヘルプは、見ているんですが、調査不足で、申し訳ありません。

キー操作の記録、キー操作の保存、で、マクロが作成できるのも知りませんでした。
これなら、エクセルと同様に、手軽にマクロが、作成できるような気がしています。
勉強になりました。お礼を申し上げます。

改行位置がずれました。引用符も変なのを使って、ごめんなさい。ご容赦くださいま
せ。以後気をつけます。

[ ]
RE:08156 お尋ねします。No.08162
yamasan さん 01/03/27 16:27
 
TAKA さん、有難うございました。
お世話になっています。山田です。

 |  // マクロ(ここから)
 |      replaceallfast "(http|https)://.*", "<a href=\"\\0\">\\0</a>", regular;
 |      endmacro;
 |  // マクロ(ここまで)

凄いです。希望どおりになりました。
これだけの記述でできるとは、思っても見ませんでした。
完璧です。

これで、この作業については、記述抜かりの心配もなくなりました。

 |  今回のマクロは、アンドゥ操作で1行単位にしか戻りませんが、ア
 |  ンドゥ2回で全て元に戻すことも比較的簡単に出来ます。

なるほど。

 |  ちなみに、マクロのプログラミングに関しては、マクロ作者用の専
 |  用会議室がありますので、次回からはそちらで質問された方がよろ
 |  しいかと思います。
 |  
 |  引き続き質問等ありましたら、専用会議室の方でお願いします。

マクロの作成方法も、少しわかってきたので、
上手く動かないとき、エラーが出るときは、
マクロ会議室のほうに、投稿します。
その節は、ご迷惑をかけるかもしれませんが、宜しくお願いします。
本当に有難うございました。大幅な作業時間の短縮になりました。

[ ]
RE:08157 お尋ねします。No.08163
yamasan さん 01/03/27 16:29
 
ひろ さん、有難うございました。

 |   この程度ならマクロを組む必要はありません。タグ付き正規表現を使った
 |  置換で出来ます。具体的には、
 |  検索文字列:\<https?://.+
 |  置換文字列:<A HERE="\0"></A>
 |  とし、正規表現を ON にします。
 |  
 |   マクロで書くとしたら、
 |  replaceallfast "\\<https?://.+"," <A HERE=\"\\0\"></A>",regular;
 |  となります。
 |  
 |   P.S アルファベットと数字だけといった制限を加えることも出来ます。

タグ付き正規表現を使った置換というのも今回覚えました。
色々と、秀丸の中でできるんですね。嬉しいと言うか、
今まで知らなかっただけと言いますか。

大変参考になりました。御礼申し上げます。

[ ]