
$fp = fopen($file, 'r');
if (!$fp) {
die("cannot open [$file]\\n");
}
while (1) {
$buf = fgets($fp);
if ($buf == '') {
break;
}
}
fclose($fp);
このコードを書いているとき、僕の中で何かが崩れました。
少し前から、「PHP?言語じゃないよ」「Rubyはいいよ」「Rubyは最高だよ」と言われていたので浮気相手はRubyです。勢いをつけるために本を購入。昨日の朝、嵐の中到着しました。
![]()
![]()
どちらも知人のオススメなので安心。
なんとなく僕の中で人工無脳をつくってみたいなぁ、という気持ちもあったので「恋するプログラム」がジャストミートです。

!?
2章までぱーっと。文章が軽快で読みやすいです。
本ではWindowsですが自分はLinux環境(FedoraCore5)にしたので以下のところは自分でやる必要がありました。
# yum install irb $ vi ~/.irbrc require "irb/completion" IRB.conf[:SAVE_HISTORY] = 100 $ irb
これからしばらくはRubyの話題が多くなりそうです。

今週、Rubyに浮気します
6 Comments
»
コメントはお気軽にどうぞ




> このコードを書いているとき、僕の中で何かが崩れました。
とりあえずrubyでそのソースコードを見たい!
Comment by しょうた@php — 2007年3月13日 @ 10:22
fp = File.open('file.rb', 'r') while line = fp.gets() print line endこんな感じ?
いや、まだぜんぜんわかってないけど(^^;
fcloseを勝手にやってくれるのと例外処理になっているのがPHPとは違うのかな。ブロックにしないとcloseは自動化されない模様。
Comment by funaki — 2007年3月13日 @ 11:09
ブロックを使うとこう書いたりもできます。
慣れるまでは変な感じですが…。
open(’file.rb’).each do |line|
print line
end
この辺が参考になるかもしれません。
http://www.namaraii.com/rubytips/?%A5%D5%A5%A1%A5%A4%A5%EB%A5%A2%A5%AF%A5%BB%A5%B9
Comment by まちゅ — 2007年3月13日 @ 12:53
ぁ、ありがとうございます。ブロックで書くとちょっと長くなるのか?と思っていたのですが.eachで繋がるんですね。
ところでこの情報、知らなかったのでめっちゃ助かりました。
vim でマウスが使える
http://www.machu.jp/diary/20070310.html#p01
Comment by funaki — 2007年3月13日 @ 13:38
僕が PHP で書くならこんな感じ。
foreach (file($file) as $buf) {
if ($buf == ”) break;
}
Comment by hello — 2007年3月13日 @ 17:38
あ、よく考えたら、
open(’file.rb’).each do |line|
は
fp = open(’file.rb’)
fp.each do |line|
の短縮なので、openでブロックを使っている訳じゃなかったです。
マウスの件は衝撃でした。おさかなの人に感謝です。
Comment by まちゅ — 2007年3月13日 @ 23:59