hrkt0115311の、迷えるプログラミング教室  RSSを登録する

プログラミングに興味はありますか? 素人が入門書片手にソースコード書いたりcgi作ったり、迷子になったりするメルマガです。広大なプログラミングの森で、一緒に迷子を楽しんでみませんか?

最新号をメルマガでお届けします    
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。
2008/08/26

「hrkt0115311の、教えて習うRuby教室。」Vol.69 ~「あの英文、とりあえず全部リンク貼っときました。」の巻~

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

              〜 Ruby始めました 〜
                                             
                 「hrkt0115311の、教えて習うRuby教室。」Vol.69

━━━━「あの英文、とりあえず全部リンク貼っときました。」の巻

おはようございます。hrkt0115311です。毎回メルマガを読んでいただきありがとう
ございます! LDRでRSSを登録して下さっている方もありがとうございます。
バックナンバーをご覧下さっている方にも感謝します。励みになります!
http://reader.livedoor.com/about/http://archive.mag2.com/0000267290/rss10.xml

今回は、英文を読み込ませて、全部に対してひたすら英語辞典への
検索結果URLを貼り付けたHTMLを出力するスクリプトを書いてみました。

それでは本日のメルマガ始めます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

○目次
・ 「あの英文、とりあえず全部リンク貼っときました。」(出力結果)
・ 「あの英文、とりあえず全部リンク貼っときました。」(解説)
・ 「あの英文、とりあえず全部リンク貼っときました。」(スクリプト)
・ 編集後記

━━━━━━━━━━━━━━━━━━━━━━━━━━━免責事項

 ソースコードは、発行者が実際に動かし、構文チェックなどもしていますが
 ご利用になられて万一損害が生じた場合、保証することができません。
 ご利用になられる際は、ご自身でご確認になられた上で、お試し下さい。

━━━━━━━━━━━━━━━━━━━━Rubyの導入方法について

 OSは何をお使いですか? LinuxでもMacOSでもWindowsでも、Rubyの
 公式ページでインストール方法が説明されています。

 ○Ruby Install Guide
 http://preview.tinyurl.com/4ghc3o

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

○「あの英文、とりあえず全部リンク貼っときました。」(出力結果)

プロジェクト・グーテンベルグから『不思議の国のアリス』をお借りして
HTMLにしてみました。以下が出力結果です。2MBあります。ファイルサイズが
大きいのでご注意願います。

http://book0115311.web.fc2.com/ruby/e2h.html

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

○「あの英文、とりあえず全部リンク貼っときました。」(解説)

メルマガ17号で、英文を渡すと検索結果のURLに整形するものを紹介
したことがあると思います。
http://archive.mag2.com/0000267290/20080705070000000.html

これができるなら、元の英文のレイアウトを保持して、単語ごとに
別窓が開くようにHTMLを出力してあげたら、辞書引く手間が省ける
かなぁと考えました。数字とか記号とか検索しなくていいものまで
検索対象にしてしまうのはご愛敬なんですが、「本一冊まるまる下調べ
しておいて」というお願いは無理でも、リンクはるくらいなら
Rubyにお願いしてやってもらうことができるんだなぁと、今更ながら
気がつきました……。

それにしても140kbのデータが2MBになるとは。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

○「あの英文、とりあえず全部リンク貼っときました。」(スクリプト)

=begin
1.ファイルで読み込んだ英文を、すべて英辞郎へリンク貼った形にできるスクリプト
2.数字や記号も気にせずリンク貼ってしまう、おおざっぱな子です
=end

$KCODE = "UTF-8"
require "jcode"

txt = File.read('eigo.txt')
w = Array.new
txt.each do |i|
  w << i.scan(/\w+|[^\s\w]+/)
  w << i.scan(/\n/)
end
w.flatten!

w2 = Array.new
w.each do |i|
  w2 << %Q|<a href="http://eow.alc.co.jp/#{i}/UTF-8" target="_blank">#{i}</a> | if i != "\n"
  w2 << "</br>" if i == "\n"
end
#puts w2.to_s

#ファイル出力
File.open("e2h.html", "w"){|f|
 STDOUT.reopen(f)
}
puts <<E
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=URF-8">



<title>あの英文、とりあえず全部リンク貼っときました。</title></head>
<body bgcolor="#FFFFCC">

<p>
<h1>あの英文、とりあえず全部リンク貼っときました。</h1>

#{w2.to_s}

</p>

<p><br><br><center>謝辞</br>このHTMLファイルはRubyスクリプトにより生成されました。</br>
生成するにあたり、プロジェクト・グーテンベルグのコンテンツを使わせていただきました。
ここに感謝とともに出典を明記します。
</br><a href = "http://www.gutenberg.org/etext/11" target="_blank">http://www.gutenberg.org/etext/11</a> / 
<a href = "http://www.gutenberg.org/files/11/11-h/11-h.htm" target="_blank">
http://www.gutenberg.org/files/11/11-h/11-h.htm</a></center></p>
</body></html>
E

■ 編集後記
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

「hrkt0115311の、教えて習うRuby教室。」を最後までお読みいただき
ありがとうございます。いかがでしたか?

秋雨というか、肌寒い陽気が続いています。みなさんは、折りたたみ傘と
普通の長い傘と、どちらを好まれますか? 視界が確保できるので、私は
駅の売店などで売られているビニール傘が好きです。あの素材で折りたためて
さびない骨で作ってあるといいんだけどなぁ。なかなか見かけないのです。

説明不足・分かりにくい点・私の理解の誤りなど、お気づきになられた点があれば、
お気軽にご意見・ご感想をお寄せ下さい。 enjoy.ruby@gmail.com にて、
メルマガ読者の皆さまからのフィードバックをお待ちしています。

それではまた、次号でお会いしましょう。

■ いただいた反響について
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

「こんな仕組み作れないかな」とか「説明不足で分からないよ」といった
ご指摘をお寄せいただけると嬉しいです。みなさまの声で、メルマガを
育てていただければ嬉しいです。また、メルマガで、頂戴したメールの
一部を紹介させていただく可能性があります。差し支えがある場合は
「発行者のhtkt0115311に読んで欲しいだけで、メルマガには掲載しないで」
とお書きいただければ幸いです。

■ 転送や再配布について
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 blogなどでご紹介いただく際は、 http://www.mag2.com/m/0000267290.html
 などを並記していただき、私の書いた文章であることが分かる形に
 していただけると幸いです。またメルマガの転送については、転送者さんと
 転送したメルマガを受け取られた方が迷惑でない範囲であれば歓迎します。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 メールマガジン「hrkt0115311の、教えて習うRuby教室。」

 ○発行者     htkt0115311
 ○発行システム  『まぐまぐ!』 http://www.mag2.com/
 ○配信中止はこちら http://www.mag2.com/m/0000267290.html
 ○公式サイト    http://enjoy-programming.g.hatena.ne.jp/hrkt0115311/
 ○日記       http://d.hatena.ne.jp/hrkt0115311/
 ○Twitter     https://twitter.com/hrkt0115311
 ○お問い合わせ   enjoy.ruby@gmail.com

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
最新号をメルマガでお届け
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。

最近の記事

上へ戻る