[#42454] 多量の正規表現との効率的なマッチのアイデアを、、 — しん <dezawa@...>

出沢です

22 messages 2006/06/22
[#42455] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — rubikitch <rubikitch@...> 2006/06/22

From: しん <dezawa@aliadne.net>

[#42456] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — しん <dezawa@...> 2006/06/23

出沢です

[#42458] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — rubikitch <rubikitch@...> 2006/06/23

From: しん <dezawa@aliadne.net>

[#42459] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — しん <dezawa@...> 2006/06/23

出沢です

[#42460] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — rubikitch <rubikitch@...> 2006/06/23

From: しん <dezawa@aliadne.net>

[#42461] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — しん <dezawa@...> 2006/06/23

出沢です。

[ruby-list:42346] Re: ディレクトリーを再帰下降していくスクリプトでNoMemoryErrorエラー

From: 岩崎 弘孝 <IH000667@...>
Date: 2006-06-01 02:01:48 UTC
List: ruby-list #42346
岩崎です。

>こんにちは、なかむら(う)です。
>というわけで、再現のためにもうちょっと情報をいただけますでし
>ょうか?
>ディレクトリの構成であるとか、実際にどんな処理がその中にある
>かとか。

その後調べてみたところ、再帰もネットワークドライブも無関係であって
単にpath全体の長さが256?を超えると問題があるようです。

検証用に作成した簡単なもの(Dir.chdir(長いPath))でテストすると

>E:/DOCUME~1/ih000667/bin/tbis/t2.rb:5: [BUG] rb_sys_fail(getcwd) - errno == 0
>ruby 1.8.4 (2005-12-24) [i386-mswin32]

当初のコードは以下のようなもので、Dir.chdir(dir)は通って、
Dir.pwdのことろでNoMemoryErrorエラーとでました。

>def xtree(dir,lev=0,&y)
>  Dir.chdir(dir) do |dir|
>    # 自分のサブフォルダーを調べる
>    subdirs=[]
>    Dir.glob('*').each do |file|
>      subdirs.push(file) if FileTest.directory?(file) 
>    end
>    
>    pwd=Dir.pwd #ここでNoMemoryErrorエラー
>    puts ":pwd:#{pwd}"
>    
>    yield pwd if lev !=0
>    
>    subdirs.each_with_index do |d,i|
>      xtree(d,lev+1,&y)
>    end
>  end
>end


元々WindowsではMAX_PATHの話があるような気がしますが、
Explorerで256以上になるフォルダーを作成しても問題がありません。

Rubyで扱えないのは仕様でしょうか?

== Iwasaki ==
Email: ih000667@mb.taiyokogyo.co.jp

In This Thread

Prev Next