[#44725] Set[Set[1]]==Set[Set[1]] は偽? — "5.5" <5.5@...>

5.5 です。

22 messages 2008/03/04

[#44782] $stdin.rewind が exec した子プロセスに伝わらない? — SATOH Fumiyasu <fumiyas@...>

さとうふみやす @ OSS テクノロジです。

11 messages 2008/03/17
[#44783] Re: $stdin.rewind が exec した子プロセスに伝わらない? — Kazuhiro NISHIYAMA <zn@...> 2008/03/17

西山和広です。

[ruby-list:44757] open組み込み関数について

From: m-hatake@...
Date: 2008-03-12 00:56:36 UTC
List: ruby-list #44757
畠山です。

ついでに便乗で質問させてください。
たしかにリファレンスマニュアルによると
openをブロックつきで呼び出すとクローズ処理もしてくれると
書いてありますが、

よく

open("xxx").each do |line|
   各行についての処理
end

というような書き方も私はします。この場合は、
ファイルのクローズ処理はされているのでしょうか?
(いままではクローズされていると勝手に思っていたのですが)

もしこれでクローズ処理がされているとするならば、
(直感的には)

a = open("xxx").to_a

とした場合もクローズされていてほしい感はあります。
(open()につづいてなにかのメソッドが呼び出されている、という点で)

で、これがクローズされているならば、

open("xxx").grep()

も?と連鎖的に思ってしまったのですが。
実際のところはどうなのでしょう?

よろしくお願いします。

--
Hatakeyama
m-hatake [at] jaist.ac.jp



From: m-hatake@jaist.ac.jp
Subject: [ruby-list:44752] Re: テキストファイルの文字列検索
Date: Tue, 11 Mar 2008 21:17:07 +0900

> 畠山です。
> 
> るびきちさんが書いたのと同じような処理が別の
> 書き方でもできるので、わたしの知っている範囲で。
> 参考までに。
> 
> 以下は全部
> 
> File.readlines("test.dat").grep(/aa/)
> 
> と同じ処理になると思います。
> 
> b = open("test.dat").to_a.grep(/aa/)
> c = open("test.dat").grep(/aa/)
> d = File.new("test.dat").grep(/aa/)
> e = open("test.dat").select{|i| i =~ /aa/}
> 
> わたしの基本的な理解では、grep, selectは配列のメソッドで
> (厳密にはEnumerableモジュールのメソッドでeachメソッドが定義されているクラスのメソッド?)
> 
> a = ["aaa","bbb","ccaacc","ddd"]
> p a.grep(/aa/)
> 
> のように使うのが基本的になると思っています。
> 
> --
> hatakeyama
> m-hatake [at] jaist.ac.jp
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> From: Kabu and Ruby管理人 <kabu_and_ruby@ybb.ne.jp>
> Subject: [ruby-list:44750] Re: テキストファイルの文字列検索
> Date: Tue, 11 Mar 2008 19:25:16 +0900
> 
> > お世話になります。
> > そんなものがありましたか!!(あたりまえですね、、、)
> > これですっきり記述できます!!
> > 
> > Kabu and Ruby管理人
> > Web site: 『Rubyを使ってみよう!!』 http://www.geocities.jp/kabuandruby/
> > e-mail: kabu_and_ruby@ybb.ne.jp
> > 
> > 
> > 
> > ----- Original Message ----- 
> > From: <rubikitch@ruby-lang.org>
> > To: "ruby mailing list" <ruby-list@ruby-lang.org>
> > Sent: Tuesday, March 11, 2008 7:00 PM
> > Subject: [ruby-list:44749] Re: テキストファイルの文字列検索
> > 
> > 
> > > From: Kabu and Ruby管理人 <kabu_and_ruby@ybb.ne.jp>
> > > Subject: [ruby-list:44747] テキストファイルの文字列検索
> > > Date: Tue, 11 Mar 2008 17:59:56 +0900
> > >
> > > るびきちです。
> > >
> > >> いつもありがとうございます。
> > >> テキストファイルから、特定の文字列を含む行を配列として取得するために下記のようにしましたが、もっとよい方法はありますでしょうか?
> > >
> > > File.readlines(ファイル名).grep(正規表現)
> > >
> > > File.readlinesでファイルを行の配列にし、grepで正規表現にマッチするものに絞り込みます。
> > > ちなみに正規表現にマッチする行を抜き出すUnixコマンドもgrepです。
> > > --
> > > rubikitch
> > > Blog: http://d.hatena.ne.jp/rubikitch/
> > > Site: http://www.rubyist.net/~rubikitch/
> > > 
> > 

In This Thread