From: "Victor H. Goff III" Date: 2008-09-05T10:58:08+09:00 Subject: Re: How do I quickly search the end of a huge text file? ------=_Part_45614_29027998.1220580232972 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline IO::SEEK_END at Ruby-Doc may be the ticket... http://www.ruby-doc.org/core/classes/IO.html#M002305 On Thu, Sep 4, 2008 at 8:51 PM, Brian Green wrote: > I am trying to create a ruby script that will search a maya ascii file > for specific text. The problem I'm running into is that it's running to > slow for the system at work. I know that all the information I need is > in the last 5% of the text file - but I haven't been able to figure out > a way to either jump to near the end, and then start search through > lines or even better iterating backwards through the file till I find > what I'm looking for... here is the code I'm currently using - which > works but slowly - any suggestions for how to speed this up would be > greatly appreciated! :D > > require "FileUtils" > require "ftools" > > def FindRenderLayers (root) > layersFile = [] > dirLocation = root.gsub(/(\\)$/, '') > list = Dir.entries(dirLocation) > > list.each do |file| > if file =~ /\.ma$/ > fileName = root + file > layersFile.push file > File.open(fileName) do |file| > while line = file.gets > if line =~ /connectAttr > (\"renderLayerManager.rlmi\[[0-9]\]\")/ > if $1 != "defaultRenderLayer" > editedLine = "-" + $1 > layersFile.push editedLine > end > end > end > end > end > end > return layersFile > end > > root = "C:\\Users\\Brian\\Documents\\Ruby\\" > puts FindRenderLayers(root) > -- > Posted via http://www.ruby-forum.com/. > > ------=_Part_45614_29027998.1220580232972--