トップページ⇒tech
1001コメント307KB

Ruby初心者スレッドPart4

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/01/22(日) 20:02:29
オブジェクト指向スクリプト言語Rubyについての質問スレッドです。

Ruby Home Page
http://www.ruby-lang.org/ja/



#過去スレ
Ruby初心者質問スレPart1
http://pc5.2ch.net/test/read.cgi/tech/1100534824/

Ruby初心者質問スレPart2
http://pc8.2ch.net/test/read.cgi/tech/1107799347/

Ruby初心者質問スレPart3
http://pc8.2ch.net/test/read.cgi/tech/1125587131/



#本スレ
Rubyについて Part 18
http://pc8.2ch.net/test/read.cgi/tech/1133988248/



#関連スレ
RUBYの宿題教えてください。
http://pc8.2ch.net/test/read.cgi/tech/1106572657/

【最高言語】 Rubyist Magazine創刊 【ルビま!】
http://pc8.2ch.net/test/read.cgi/tech/1094825807/
01591512006/02/01(水) 14:07:03
>>158
よくわからないのでもう少しお願いできますか?
別の Thread としてではなく、Tk のタイマーを使うということでしょうか?
TkAfter のプロセスとして select を指定し、一定時間ごとにタイムアウトありで呼ぶという理解であってるでしょうか。
0160デフォルトの名無しさん2006/02/01(水) 14:21:51
>>159
つか、157で
>GUI のループの中で socket からデータを得る一般的な書き方ってどんなでしょう。
と書いてるから、ループの中でsocketに対してselectしときゃいいんじゃ、と思っただけなんだが。
一定時間ごとにタイムアウトありで、というのはその通り。
01611512006/02/01(水) 14:42:58
あ、GUI ループそのものに指定するのか…。
なるほどと思ったのですがそのやり方がわからないので、また調べてみます。
現状、Thread を廃止し、タイマーを使って select を試してみたところ 151 の症状は出なくなりました。
どうもありがとうです。
0162デフォルトの名無しさん2006/02/02(木) 19:21:37
a,bが互いな素であるときaxをbで割ったあまりが1になるようなxを1つ出力するプログラムを書きなさい。
という課題が出ました。
互いに素というのは作れるのですが、後半部分ができません。
だれか教えてください。お願いします。
0163デフォルトの名無しさん2006/02/02(木) 19:24:12
>>162
#関連スレ
RUBYの宿題教えてください。
http://pc8.2ch.net/test/read.cgi/tech/1106572657/
0164デフォルトの名無しさん2006/02/03(金) 09:59:56
配列 arr の要素 obj を、arr の最後尾に入れ直す場合、普通は

arr.push(arr.delete(obj))

とすると思うんだけど、arr のサイズがかなり大きい場合、
もっと高速に出来る方法が無いかな、と思っているんだけど、どうかな?

細かい条件は、

* arr のサイズはかなり大きくなることを仮定すべき
* arr 中の各オブジェクトには、絶対に重複は無い
* arr 中に obj は必ず存在する
* 結果的に「該当のオブジェクトの順序を最後尾にする」という事が
効率的に、かつ高速に実現できるのなら、単独の Arrayだけでなく、
他の補助用のオブジェクトを併用しても良い
(つまり、そのために補助用に Hashなどを使っても良い)
また、事前に arr にデータを入れる時点(Array#push)で、何かの工夫があってもよい。

という事なんだけれども。
0165デフォルトの名無しさん2006/02/03(金) 15:30:15
しかしArrayである必要があり、独自クラスでは駄目、と?
0166デフォルトの名無しさん2006/02/03(金) 15:42:00
英語がダメだとRubyを扱うのは難しいのでしょうか
日本語化パッチを探しているのですが、なかなか見つからないので…
0167デフォルトの名無しさん2006/02/03(金) 15:44:36
>>166
どこを日本語化したいの?
0168デフォルトの名無しさん2006/02/03(金) 16:00:49
>>167
プログラムもほぼ無知な初心者ですみません
とりあえずver1.8.4を落としたのですが、エディタも含めた中身が全て英語だったので何がなにやら…
(初心者インストールガイドの情報が1年前のものなのか、書かれている内容とリンク先のファイルが違ったりしていたので…
今はスレタイにある公式サイトを見ながら進めてます
0169デフォルトの名無しさん2006/02/03(金) 16:01:14
>>164
これを見て思い出したんだけど、Array#rotate はどうなったんだよ!
0170デフォルトの名無しさん2006/02/03(金) 16:01:40
>>168
「エディタ」って何?
つーか、何を落としたの?
0171デフォルトの名無しさん2006/02/03(金) 16:07:30
>>170
ttp://rubyforge.org/frs/?group_id=167&release_id=4153
ここの"1.8.4-16 preview2"というファイルです
エディタは、このファイルに同封されていたSciTEというテキストエディタ?です
01721712006/02/03(金) 16:41:43
済みません、自己解決できました
どうもお騒がせしました
0173デフォルトの名無しさん2006/02/03(金) 16:50:15
Rubyのプログラムが、Rubyじゃなくて英語で書かれてると思ってたのかな??
01741712006/02/03(金) 16:54:44
>>173
それに近い感じです
日本語を一切受け付けないものだと思ってました
0175デフォルトの名無しさん2006/02/03(金) 23:37:33
open-uriってsslにpostできる?
0176デフォルトの名無しさん2006/02/04(土) 00:43:50
まず試せ。
0177デフォルトの名無しさん2006/02/04(土) 01:04:44
SSL関連で変な失敗したら鯖管に目つけられて通報されるかもしれないだろ!!!11!1
0178デフォルトの名無しさん2006/02/04(土) 01:05:26
>>177
ローカルで試せ。

0179デフォルトの名無しさん2006/02/04(土) 01:14:24
ドキュメントが無いって最悪だな。ruby最悪
0180デフォルトの名無しさん2006/02/04(土) 02:09:05
require 'net/http'
Net::HTTP.version_1_2 # おまじない
word = "test"
Net::HTTP.start('www.google.com', 80) {|http|
response = http.get("/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&num=1&q=#{word}")
response.body =~ /swrnum\=(\d+)/
p $1
}

GoogleのHIT数を取得したいのですが
このスクリプトで取得できる値と実際にブラウザ
0181デフォルトの名無しさん2006/02/04(土) 02:10:49
# 途中で送っちゃった。

実際にブラウザ(IE: 6.0.2800.1106)で検索した場合の値が違うのですが
どうすれば同じ値を取得できますか
0182デフォルトの名無しさん2006/02/04(土) 02:38:57
>>181
Cookieも一緒に送信したら一緒になったよ。
理由は分からんけど…。
01831752006/02/04(土) 02:49:00
どうにもopen-uriは糞という結論になったので、http-aceess2を使ってみたが
途中で切れるぞ?
getもマトモにできんとはどういうことだ?何の嫌がらせ?

$ ruby -r nkf -r http-access2 -e '
> url="http://pc8.2ch.net/test/read.cgi/tech/1133988248/"
> html=HTTPAccess2::Client.new.get(url).content
> puts NKF.nkf("-Sex",html).split("\n")[-3..-1]'
<dt>257 :<font color=green><b>デフォルトの名無しさん </b>(略)
<dt>258 :<a href="mailto:sage"><b>デフォルトの名無しさん </b>(略)
<dt>259 :<a href="mailto:sage"><b>デフォルトの名無しさん </b>(略)
01841512006/02/04(土) 09:19:13
うーん。

require "tk"

a = TkLabel.new{pack}
TkText.new{pack}

Thread.start do
 num = 0
 while true
  num += 1
  a.text = num
 end
end

Tk.mainloop

上のプログラム実行中、テキストウィジェット内でマウスをドラッグすると
それ以降、ラベルウィジェットの更新がされなくなります。
(alive? で確かめるとスレッド自体は生きてる模様)

環境は cygwin です。unix な人、上のプログラムが大丈夫か確かめてもらえませんか?

#Tk 使うときはスレッド使うなってこと?もうやだ。
0185デフォルトの名無しさん2006/02/04(土) 09:55:59
>>164
arrの要素をキーにして、そのindexを値としたハッシュを使えばいいんじゃね。
・・・と思ったけど、arr.delete(obj)したときに、objより後ろにあるやつのindexをすべて更新しなきゃいけないから、だめだめだな。

思うに、配列を使っている限りはだめなんじゃないか。
arr.delete(obj) をするときに、どうしてもO(N)の時間がかかる(探索にO(N)、削除にO(N))。
Priority Queueとか使えるんだったら、そっちのほうがいいと思う。
これなら探索にO(logN)、削除にO(logN)だからかなり早くなるとは思うよ。
ただし要素間で大小比較ができないといけないから、164の要件にあうかどうかわからんが。

つか、Rubyの話題じゃないな。本スレかMLできけば、学者さんがヒントくれると思う。
0186デフォルトの名無しさん2006/02/04(土) 11:23:45
>>178
きちんとしたSSLページをローカルに用意できる人間がこの世にどれだけいるっていうんだ
0187デフォルトの名無しさん2006/02/04(土) 11:39:51
別にローカルなら自作自演なルート証明書も作れるし、
インストールできるだろ?
0188デフォルトの名無しさん2006/02/04(土) 11:50:52
つーか一式ダウンロードできるよ。
ttp://hunter.campbus.com/
これもっつーか、これ恐ろしいパッケージ。
「Apache, MySQL, PHP + PEAR, Perl, mod_php, mod_perl, mod_ssl, OpenSSL, phpMyAdmin,
Webalizer, Mercury Mail Transport System for Win32 and NetWare Systems v3.32,
JpGraph, FileZilla FTP Server, mcrypt, eAccelerator, SQLite sowie WEB-DAV + mod_auth_mysql.」
ttp://www.apachefriends.org/de/xampp-windows.html
0189デフォルトの名無しさん2006/02/04(土) 11:58:14
まあ、SSLサイトの何が必要なのかってので自作証明書で充分かどうかってのは変わるかも。

https://〜〜〜 なサイトのファイルを取ってきたいってだけなら
標準添付のnet/https.rbでできないかい。
postもできんじゃねーの。やったことないけど。
01901232006/02/04(土) 12:32:07
誰か 123 がわかる人いませんか。
みなさんのところではこういう現象はおこらないのでしょうか・・・
0191デフォルトの名無しさん2006/02/04(土) 19:35:32
>>183
mechanize でも使え。
http://rubyforge.org/projects/wee/
01921802006/02/04(土) 20:57:39
>>182
そうかCookieか!
助かりましたありがとう

デフォルトの国によってフィルタがかかるのかいな?
0193デフォルトの名無しさん2006/02/04(土) 21:09:28
>>190
http://www.geoffreyarnold.com/
ここにGEM_PATHがどうのとか書いてるけど,
これじゃない?
01941232006/02/04(土) 22:31:34
>>193

環境変数GEM_HOMEを設定することで動作するようになりました。
設定ファイルはインストール時のみ有効でアプリケーションの実行時には参照されないみたいです。
なんともまぎらわしい仕様ですが、これで先に進めます。
ありがとうございました。
0195デフォルトの名無しさん2006/02/05(日) 21:23:33
Rubyの$KCODEと-Kオプションについて質問です。
-Kオプションはスクリプトの解析段階からの文字コードを変更することになるので
スクリプト自体を、その文字コードで書いておかないといけない。

一方、$KCODEは、スクリプト解析後に影響がでてくるため、
スクリプト自体は、単なる1byteの羅列として認識されている。
正規表現を用いる場合のマッチの仕方、Stringの一部のメソッドのみに影響を与える。

このように理解したのですが、これでいいでしょうか??

で、困っているのは、Railsで$KCODEを"u"に指定しようとして、混乱しています。
$KCODEを"u"にすると、スクリプト中のStringやRegexpをUTF8で書きたいので、
スクリプト全体をUTF8に書き換えようとしましたが
そうすると、StringやRegexp以外のスクリプトの部分のASCII文字が、2bytes単位になってしまうけど
$KCODEで指定しているから、スクリプト解析時はNONEで解釈し、1byte単位で解釈してしまい、
解釈できませんよね。

結局、Rubyにおいて、-Kuでなく、$KCODE="u"とした場合、
1.スクリプトは、どの文字コードで書くのか??
2.スクリプトをShift-JISなどで書いた場合、StringやRegexp部分のみUTF8にしないといけない気がします。
どうなんでしょうか??

よろしくお願いします。
0196デフォルトの名無しさん2006/02/05(日) 21:58:11
何か誤解がある気がするが、 -K で何を指定しようが String はバイト列のま
ま変わらないよ(KCODEじたいは設定されるので文字列や正規表現に影響を与えるが)。

それと、 UTF-8 の場合、 ASCII 文字に関しては1byteずつなので、別に何ら
問題はない。UTF-16 あたりとごっちゃにしてない?

ただし、 Rails はデフォルトでは UTF-8 を吐こうとするので、きちんと設定
しないと Shift-JIS などの文字列を表示させることはできない。 Rails をや
るという前提であれば、可能ならぜんぶ UTF-8 で書くのが無難。
0197デフォルトの名無しさん2006/02/06(月) 02:04:29
>>184
Linux はOK。
One-click ruby installer 1.8.4preview2 + ActiveTcl8.4.12 もOK。
cygwin は手元に環境がないので確認できず。
動かしているバイナリの native-thread サポートはどうなってます?
0198デフォルトの名無しさん2006/02/06(月) 02:28:54
文字列を’’で囲むというのが気に入らない。
””のほうが美しいのに。
0199デフォルトの名無しさん2006/02/06(月) 02:38:21
>>56
今さらという気もするが、Tk.after(1,proc{anime}) を
Tk.after(2000, proc{anime}) として約2秒間隔の繰り返しにすると
原因がわかるのではないかという気が…
(貼ってあるものに間違いがなければだが)
0200デフォルトの名無しさん2006/02/06(月) 02:40:03
木村カエラ的な?
0201デフォルトの名無しさん2006/02/06(月) 05:07:11
>>198
ん?自分では普通に"〜"で囲んでますよ。
'〜'で文字列を囲めることがご不満?
0202デフォルトの名無しさん2006/02/06(月) 05:17:39
変数を展開したい時だけ " を使ってるな。
意図的にそうして、俺ルールなプラシーボでミス防止とソース見易くしてる。
0203デフォルトの名無しさん2006/02/06(月) 06:00:03
>>198
この辺個人の好みが出るよな
どっちをメインに使っても実用では大差ないだけに、特に

ちなみに俺は、ハッシュのキーやファイルパスなんかはたいていダブルクォート
画面に表示する文字列は全部ダブルクォート、で使い分けてる
0204デフォルトの名無しさん2006/02/06(月) 07:11:47
>203
で、どっちがシングルクォートなんだ?
0205デフォルトの名無しさん2006/02/06(月) 09:11:59
だれか、collectメソッドをRubyで書いてみて。
0206デフォルトの名無しさん2006/02/06(月) 10:21:43
collect(コレクト)
0207デフォルトの名無しさん2006/02/06(月) 10:34:25
krkt
0208デフォルトの名無しさん2006/02/06(月) 12:58:12
>>202
なるほど。自分では逆にしてます。原則的にはダブルクォートで、
変数展開やエスケープシーケンスを無効にしたい時だけシングルクォート。
何となく、ダブルクォートの方が文字列っぽい気がして。
0209デフォルトの名無しさん2006/02/06(月) 13:11:28
Delphi出身の私はシングルのが文字列っぽく感じるな
…お陰で等号を=と書く癖が治りませんorz
0210デフォルトの名無しさん2006/02/06(月) 13:12:27
"#{val}"を多用する流儀かどうかでも違う気がするぞ。
コメントであるはずの#を流用するのが気に食わんとか。

#{〜}には何でも入るのが結構好みだがやりすぎてワケワカメになること多数
0211デフォルトの名無しさん2006/02/06(月) 13:22:45
#{ }の変数展開は最初凄く嫌だった。
なんかプログラミングの方向性として邪道っぽくね?
埋め込まずに + で足していったほうがよくね?
0212デフォルトの名無しさん2006/02/06(月) 13:30:25
>>211
自分では多用する方です。好みや慣れによりけりでしょうね。
Perlの変数展開に慣れてる人には違和感が少ないでしょうし。

>>210
確かに程度問題ですよね。
複雑になるようなら>211のように書き方を変えることもあります。
0213デフォルトの名無しさん2006/02/06(月) 13:38:16
>>211
+ はto_sの山を築かないか?
0214デフォルトの名無しさん2006/02/06(月) 13:43:49
>>205
多分、こんな感じか?
環境が手元にないからテスト出来んが。
def collect
 a=[]
 self.each{|i|a.push(yield(i))}
 a
end
0215デフォルトの名無しさん2006/02/06(月) 14:05:00
>>213
文字列と足す時は暗黙の型変換すればよくね?
0216デフォルトの名無しさん2006/02/06(月) 22:03:15
>>215
良くない。
0217デフォルトの名無しさん2006/02/07(火) 01:27:07
to_str知らんのか?
0218デフォルトの名無しさん2006/02/07(火) 03:24:29
emacsで、Ruby専用のoutline-modeって使ってるひとおるん?
02192032006/02/07(火) 03:37:50
>>204
Σ( ̄□ ̄; 間違えた
0220デフォルトの名無しさん2006/02/07(火) 08:16:41
String#% 使う人〜

ノ
0221デフォルトの名無しさん2006/02/07(火) 08:32:13
私はformat派かな
レシーバが「書式に与えるデータ」ではなく
「書式そのもの」を表すのが微妙。
ワンライナでたま〜に使う程度か
0222デフォルトの名無しさん2006/02/07(火) 13:55:12
String#% は、たまに使うけど、常用はしないなあ。
たいていは sprintf だね。
02232212006/02/07(火) 14:25:01
[13, 10].format('%b %b')
みたいな書き方って無いの?
個人的には「データを書式にそって並べる」って書きたい。
0224デフォルトの名無しさん2006/02/07(火) 14:59:22
>>223
下記のような書き方はありますね。

'%b %b' % [ 13, 10 ]

自分でメソッドを追加すれば下記のようにも。

class Array
 def format( string )
  string % self
 end
end

[13, 10].format('%b %b')
0225デフォルトの名無しさん2006/02/07(火) 15:13:05
それはちょっと欲しい気がするな。
Array#pack と同じような方向性か。
0226デフォルトの名無しさん2006/02/07(火) 16:45:14
Array#join も同じ系統だね。
あってもいいかも。
0227デフォルトの名無しさん2006/02/07(火) 17:04:19
何かこの話題も初心者スレっぽくねー気がするな…
最近何でもこっちに書き過ぎっぽくね?
本スレがネタ不足に陥り気味な感じだと思うかも
0228デフォルトの名無しさん2006/02/07(火) 17:12:38
最初にeachを見たとき、「配列を順番に適用する」というメソッドが絶対にあるだろうと思ったんだけど。
なんで無いのかよくわかんない。もしかしてすでにある?

["A", "B", "C"].hoge(puts %3%3%2)
CCB

>>227
「初心者が疑問に思うこと」ではあると思う
0229デフォルトの名無しさん2006/02/07(火) 17:25:31
>>228
Enumeratorみたいなやつ?
RubyにはEnumerableモジュールがあるけど
これは「導入先のクラスにeachが定義されていること」を前提に作られてる。

ブロック付きメソッド呼び出しが簡単に出来るRubyは
要素を取り出す部分を各クラス(のeach)に完全に任せられるようになったという事では。
0230デフォルトの名無しさん2006/02/07(火) 17:28:55
each で回しちゃうからなぁ。
ブロックパラメータで処理する意識が強い Ruby だと、
行数に拘らなきゃ、無意識にそっちを使ってしまうな。
いや、んなものイラネとかいう話じゃなくてね。ただのチラシの裏。
02312302006/02/07(火) 17:29:44
リロードすれば良かった orz
0232デフォルトの名無しさん2006/02/07(火) 18:00:49
ヤターデキタヨー

[["A","B","C"]].each{|arr| print arr[2],arr[2],arr[1]}
CCB

専門用語はよくわからんが、
配列に直接ブロックがくっつくことができるといろいろ便利そうだとは思った。
0233デフォルトの名無しさん2006/02/07(火) 18:33:10
何がしたいのかよく分からんが、values_atとeach使って
['A', 'B', 'C'].values_at(2, 2, 1).each {|x| print x }
とかじゃね?
0234デフォルトの名無しさん2006/02/07(火) 19:02:55
>>232 にワラタ
0235デフォルトの名無しさん2006/02/07(火) 19:07:59
以前言ったことあった気もするけど、 #{ } でフォーマット指定したいことがよくある。

"#{|04d|num} #{|-10s|name} : #{|s|data}"

あと、こんなのとかも欲しかったり。

"%{num} %{name} : %{data}" % { :name => "foo", :num => 123, :data => "bar", }

"%{|04d|num} %{|-10s|name} : %{|s|data}" % {
:name => "foo", :num => 123, :data => "bar",
}
0236デフォルトの名無しさん2006/02/07(火) 19:32:28
"#{"04d"%num} #{"-10s"%name} : #{"s"#data}" で良くないか?
0237デフォルトの名無しさん2006/02/07(火) 19:40:55
良くないな。"#{"04d"%num} #{"-10s"%name} : #{"s"%data}"だ。
02382352006/02/07(火) 20:06:56
ん? "#{"%04d"%num} #{"%-10s"%name} : #{"%s"%data}" だよね?
リテラルの中にまたリテラルを書くのがちょっと嫌かなあ。
0239デフォルトの名無しさん2006/02/08(水) 00:37:58
そのリテラルってどういう意味?
0240デフォルトの名無しさん2006/02/08(水) 04:24:07
ダブルクォーテーションの中にダブルクォーテーションがあるのが嫌なんでしょ
その場合はやっぱし
"%04d %-10s : %s"%[num, name, data] しかないだろ
おれには "#{|04d|num} #{|-10s|name} : #{|s|data}" より見やすく感じる
0241デフォルトの名無しさん2006/02/08(水) 05:01:15
sprintf系のフォーマットは別にシングルクォートでも書ける筈だが…
"#{'%04d'%num} #{'%-10s'%name} : #{'%s'%data}"

この例に限っては>240の方が普通だけどね。
0242デフォルトの名無しさん2006/02/08(水) 05:33:04
string % array
じゃなくて
string%array
だと見辛いなあ
02432352006/02/08(水) 05:35:00
>>240
引用符の中に引用符がある気持ち悪さと、
#{ } の展開の中でさらに String#% の展開が行われてるという煩わしさが嫌。

あと、 "%04d %-10s : %s"%[num, name, data] は、
見易さよりも変更時の対応付けのミスが気になっていて、
変数が多くなってくると変数の増減があった場合に
どの % がどの変数に対応しているかがワケワカになりそうで嫌。
0244デフォルトの名無しさん2006/02/08(水) 07:22:53
forkする時だ。
0245デフォルトの名無しさん2006/02/08(水) 08:14:57
+ で繋いじゃえ。
0246デフォルトの名無しさん2006/02/08(水) 08:53:28
外人さんからのご質問↓です。

Best way to learn Ruby programming language?
http://answers.yahoo.com/question/index;_ylt=AuPhCegaYj1uxuEdXYVnQr5_zqIX?qid=1006020704969
0247デフォルトの名無しさん2006/02/08(水) 12:27:23
none.
0248デフォルトの名無しさん2006/02/08(水) 14:23:56
Ruby の M17N ないし I18N の今後の展望についてまとまったドキュメントがあれば教えてください。
0249デフォルトの名無しさん2006/02/08(水) 14:25:59
あ、えーと、もしなければこの場でまとめていただけるとありがたいです。
0250デフォルトの名無しさん2006/02/08(水) 16:00:13
今後の展望自体がないんじゃないのか。
0251デフォルトの名無しさん2006/02/08(水) 16:15:54
Ruby2.0に乞う御期待ってとこだと思う

Ruby本体としては日本語と適当なUnicodeの何かが使えればそれでよくね? って感がなくもなく
0252デフォルトの名無しさん2006/02/08(水) 22:05:41
>>248
matz自身が未踏ソフトウエアの予算でI18Nを検討したはず。成果物を探したら?
0253デフォルトの名無しさん2006/02/09(木) 05:32:12
質問です。
File.open("filename").each {|line| 処理}
この直後ファイルは自動的に閉じてくれますか?開きっぱなしですか?
0254デフォルトの名無しさん2006/02/09(木) 06:13:49
openに直にブロック付けなきゃ駄目でね?
0255デフォルトの名無しさん2006/02/09(木) 06:21:44
IO.foreach("filename"){|each| ...}
02562532006/02/09(木) 09:17:54
>>254
直にブロックをつけてprintしてみたら変なアドレスみたいなのが表示されちゃいました。

>>255
そういうやりかたもあったんですか。
繰り返しが終了した後には"filename"のファイルは閉じられているのですか?開かれたままですか?
0257デフォルトの名無しさん2006/02/09(木) 09:47:59
File.read("filename").each{|line| 処理 }
もしくは、
File.open("filename"{|fio| fio.each{|line| 処理 }}
とか。
254 が言ってるのは後者の方のような用法。

>256
閉じられるよ。
0258デフォルトの名無しさん2006/02/09(木) 10:35:50
>>257
回答どうもです!

参考までに聞きたいんですが、
file = File.open("filename")
file.each {|line| 処理1}
file.rewind
file.each {|line| 処理2}
みたいにやった場合どこで閉じられてどこで開かれるのでしょうか?(無意味なコードで恐縮ですが)
もしくはfileという変数に格納したかどうかで変わったりしますか?
■ このスレッドは過去ログ倉庫に格納されています