■ 質問はここへ ■

169 にジャンプ
No. 157投稿者: 葉月日付: 2001/08/01 04:06:34
題名 : 自動的にリンクに変換する処理

すごく初歩的なことだと思うのですが、
たとえば、文書中の、

http://www.hogehoge.com/abcd.html

という部分を選択して、

<a href="http://www.hogehoge.com/abcd.html"http://www.hogehoge.com/abcd.html</a>

というリンクに変換する作業を自動化したいのですが、相変わらず初心者コースなので、
途方に暮れてます。
いろいろなかたのHTML関係のマクロなども参考にさせていただいたのですが、
高機能すぎるというか……私には、手も足も出ないといった情けない状況です。

これだけの処理を自動化するマクロって、どこかにないでしょうか?
あるいは、なにか良きアドバイスがありましたら、よろしくお願いします。

No. 159 (157へのコメント)投稿者: かぶねこ HP日付: 2001/08/01 04:55:27
題名 : Re:自動的にリンクに変換する処理

>すごく初歩的なことだと思うのですが、

いやいや、これはそんなに初歩的なことではありません。「自動化」というのは
たいていマクロが必要で、マクロというのはちょっと初歩をこえています。

さて、お望みの動作そのもの、それひとつだけ、に限ってなら、マクロで簡単に
対応できます。(これを実現するマクロがみつからなかったのは、たぶん HTML
を書くときに表示文字列につかうのは、アドレスそのものじゃなくてサイト名だ
からじゃないかなあ。)

proc main
dim s$
s$ = @TextSelect$
if s$ = "" then exit proc '選択されていないときは実行しない
@DeleteChar
@Insert "<a href=""" + s$ + """>" + s$ + "</a>"
end proc

が、短いマクロでも自分で書けるようになるにはヒマがかかります。もっと基本
に忠実なアプローチ(応用が可能)としては、キー定義設定で

<a href="\#"></a> あるいは
<a href="">\#</a>

と設定すると、選択した文字列をはさんでタグが入力されます。もうひとつのと
ころは Ctrl を押しながらドラッグしてコピーするとか、必ずしもアドレスでは
なくサイト名が入ったりすることもあると思いますので、それなりに便利に使え
ると思います。

この、いろいろなタグをショートカットキーに割り当てるのは、個人的にとって
もおすすめですよ。「その他」−「キー定義設定」ー「追加」で、割り当てる機
能の種類に「文字列」を選びます。ここで使える特殊文字については「書式文字
列」でヘルプを参照してください。

No. 161 (159へのコメント)投稿者: 葉月日付: 2001/08/01 21:11:31
題名 : Re^2:自動的にリンクに変換する処理

アドバイスを、どうもありがとうございました!
さっそく、マクロの部分を、コピー&ペーストさせていただき、
新規のマクロとして保存して、利用させていただきました。

このリンクの変換作業は、CGIを使って、WEB上で書く日記の下書きのときに、
よく使うのです。
以前、使っていたCGIだと、この掲示板のように、URLを自動的に変換してくれたのですが、
とある事情で別のCGIに変えたら、この機能がなくなりまして。
タグが好きなようにつかえる反面、自分でタグを書く必要が出てきたので、
少し面倒だなあと思ってたのですが、これで、便利になりました。

こんなふうに、自分でよく使う機能だけを、マクロで作れるようになれたら、
もっと便利になりそうですね。

> この、いろいろなタグをショートカットキーに割り当てるのは、個人的にとって
> もおすすめですよ。「その他」−「キー定義設定」ー「追加」で、割り当てる機
> 能の種類に「文字列」を選びます。ここで使える特殊文字については「書式文字
> 列」でヘルプを参照してください。

この「書式文字列」については、初めて知りました。
(ちゃんとヘルプを読んでないのが、バレバレですね。(^^ゞ)
選択文字列を任意の文字で挟めるのは、すごく便利ですね。
さっそく、HTMLのコメントのタグをキー定義に登録してみました。

あらためて、QXエディタの自由度の高さに、感心しました。
使いこなせるまでには、まだ時間がかかりそうですが、少しずつ覚えていきたいと思います。
今後ともよろしくお願いします。

No. 162 (161へのコメント)投稿者: かぶねこ HP日付: 2001/08/01 21:45:14
題名 : Re^3:自動的にリンクに変換する処理

ご報告、ありがとうございます。

>このリンクの変換作業は、CGIを使って、WEB上で書く日記の下書きのときに、
>よく使うのです。

なるほど。

>こんなふうに、自分でよく使う機能だけを、マクロで作れるようになれたら、
>もっと便利になりそうですね。

はい、それはもう、便利です〜。ぜひ手を出してみてください。改造から始める
といいと思います。

>この「書式文字列」については、初めて知りました。[...]
>選択文字列を任意の文字で挟めるのは、すごく便利ですね。

そうなんですよ。「選択文字列」に対応してるだけでもう段違いです。

>あらためて、QXエディタの自由度の高さに、感心しました。

そういう経験を何度かしてると、わたしみたいにファンになっちゃうわけです。
(^_^)v

No. 165 (161へのコメント)投稿者: 島田 HP日付: 2001/08/02 02:26:33
題名 : Re^3:自動的にリンクに変換する処理

島田です。葉月さん、こんにちは。

>こんなふうに、自分でよく使う機能だけを、マクロで作れるようになれたら、
>もっと便利になりそうですね。

かぶねこさんも仰ってるように、これでQXの世界がぐっと広がります。
ひとつの入口として、@基本機能名……を並べたものを気楽に量産してみるのも、
楽しいですよ。
例えば、こんな風に書けば、日記マクロができます。
実行すると、冒頭に日付の入った "日付名.txt" というファイルを作ってくれるわけです。
ただし、この場合、予め "C:\DIARY" というディレクトリを作っておくことが必要です。

では、一歩進めて、"C:\DIARY" が無ければ、作るようにできないだろうか?
さらに、もともと、日付名のファイルがある場合は、このままだと上書き保存しよう
とするから(一応、問い合わせは出ますが)、
その場合はすんなり、もともとあるファイルを開くだけの動作にできないだろうか?
もっと欲張って、"C:\DIARY" の直下に、年月名のディレクトリを作って、
そこに作ってくれないだろうか?
……などなどと考えていけば、いろいろ作れるようになりますよ。

proc main
@FileNew
@Insert date0$,1
@CharReturn
call @SaveAs("C:\DIARY\"+date0$+".txt")
end proc

No. 169 (165へのコメント)投稿者: 葉月日付: 2001/08/03 07:23:01
題名 : Re^4:自動的にリンクに変換する処理

かぶねこさん、島田さん

どうもありがとうございます。
日記のマクロまで教えていただいて──びっくりしました。
でも、この日記作成のマクロ、とても参考になります。

実は、WEB上で作成する日記が、CGIで自動的に、
「yyyymmdd.html」という形で保存されるので、下書きのほうも、
それと似た形で、yyyymmdd.txtとかで保存できないかなあ、とか、
ついでに月単位でフォルダを分けられないかなあ、とか──前から考えてまして。
(いままでは、日記.txtとか、適当な名前で、
だらだら適当なサイズになるまで保存してました)
QGREPを使えば、検索するのも簡単そうですので、この際、日付ごとに日記を分けて、
保存すると便利かな……なんて、ちょっと欲を出してたところです。(^^ゞ
島田さんのマクロを参考にさせていただいて、マクロのヘルプと首っぴきで、
試行錯誤してみます。
「date0$」だと、「yyyy-mm-dd.txt」になるんですよね?
あとは、月単位のフォルダで、保存先を分けるような処理の追加とか……。
(ちょっと、初級コースには難しかったりして)
とにかく、頑張ってみますね。

No. 170 (169へのコメント)投稿者: かぶねこ HP日付: 2001/08/03 09:03:23
題名 : Re^5:自動的にリンクに変換する処理

>島田さんのマクロを参考にさせていただいて、マクロのヘルプと首っぴきで、
>試行錯誤してみます。

マクロの世界にようこそ、やる気のあるところ、敵なし。マクロヘルプの便利な
使いかたは、わたしのサイトのQXコーナーの「マクロで遊ぼう」の「まずは準
備」が参考になるかもしれません。

あとは、あまり長すぎないマクロを読む、とか。

ウェブで日記を公開していらっしゃるんですね。わたしもたまには更新しないと
……。


ヘッダのみ表示
順番に表示(No. 169 から)


メールアドレスを表示するにはURLの後ろに &m=bb6a9a3f をつけてください。
ユーザー フォーラム一覧

http://www2k.biglobe.ne.jp/~araken/
http://0ban.com/araken/