From: Peter Bailey on 5 May 2010 08:45 Hello, I keep getting an "undefined method `to_f'" for this simple script. Can someone help me? I'm interrogating jpeg graphics files and I need to log their widths and depths, in picas. Thanks a lot, Peter Dir.chdir("T:/ioma/temp") Dir.glob("*.jpg").each do |file| fileinfo = `alchemy #{file} -x` filewidth = fileinfo.match(/Width x Height: ([0-9]{1,5}) x ([0-9]{1,5})[1]/) filedepth = fileinfo.match(/Width x Height: ([0-9]{1,5}) x ([0-9]{1,5})[2]/) fileres = fileinfo.match(/Dots per inch: [0-9]{1,5}/) newfilewidth = (filewidth.to_f / 200) * 6 newfiledepth = (filedepth.to_f / 200) * 6 File.open("t:/ioma/iomafiles.log", "a") { |f| f.print "#{file} width: #{newfilewidth.to_f.round} depth: #{newfiledepth.to_f.round}\n" } end -- Posted via http://www.ruby-forum.com/.
From: Peter Bailey on 5 May 2010 08:46 Sorry. I meant a "to_f" there in the subject line, although it happens with to_i, too. Peter Bailey wrote: > Hello, > I keep getting an "undefined method `to_f'" for this simple script. Can > someone help me? I'm interrogating jpeg graphics files and I need to log > their widths and depths, in picas. > Thanks a lot, > Peter > > Dir.chdir("T:/ioma/temp") > Dir.glob("*.jpg").each do |file| > fileinfo = `alchemy #{file} -x` > filewidth = fileinfo.match(/Width x Height: ([0-9]{1,5}) x > ([0-9]{1,5})[1]/) > filedepth = fileinfo.match(/Width x Height: ([0-9]{1,5}) x > ([0-9]{1,5})[2]/) > fileres = fileinfo.match(/Dots per inch: [0-9]{1,5}/) > > newfilewidth = (filewidth.to_f / 200) * 6 > newfiledepth = (filedepth.to_f / 200) * 6 > > File.open("t:/ioma/iomafiles.log", "a") { |f| f.print "#{file} width: > #{newfilewidth.to_f.round} depth: #{newfiledepth.to_f.round}\n" } > end -- Posted via http://www.ruby-forum.com/.
From: Peter Hickman on 5 May 2010 09:08 [Note: parts of this message were removed to make it a legal post.] to_f occurs on three lines in the code you show us. How about a clue as to which line the error belongs to?
From: Calamitas on 5 May 2010 09:11 On Wed, May 5, 2010 at 2:45 PM, Peter Bailey <pbailey(a)bna.com> wrote: > Hello, > I keep getting an "undefined method `to_f'" for this simple script. Can > someone help me? I'm interrogating jpeg graphics files and I need to log > their widths and depths, in picas. > Thanks a lot, > Peter > > Dir.chdir("T:/ioma/temp") > Dir.glob("*.jpg").each do |file| > fileinfo = `alchemy #{file} -x` > filewidth = fileinfo.match(/Width x Height: ([0-9]{1,5}) x > ([0-9]{1,5})[1]/) > filedepth = fileinfo.match(/Width x Height: ([0-9]{1,5}) x > ([0-9]{1,5})[2]/) > fileres = fileinfo.match(/Dots per inch: [0-9]{1,5}/) Maybe move [1] and [2] outside the regexps? Peter
From: Peter Bailey on 5 May 2010 09:29 Calamitas wrote: > On Wed, May 5, 2010 at 2:45 PM, Peter Bailey <pbailey(a)bna.com> wrote: >> �filewidth � � � �= fileinfo.match(/Width x Height: ([0-9]{1,5}) x >> ([0-9]{1,5})[1]/) >> �filedepth � � � �= fileinfo.match(/Width x Height: ([0-9]{1,5}) x >> ([0-9]{1,5})[2]/) >> �fileres � � � �= fileinfo.match(/Dots per inch: [0-9]{1,5}/) > > Maybe move [1] and [2] outside the regexps? > > Peter Yes, thanks. I found the problem. It's the placement of my [1] and [2] there at the end of the lines. Thanks for your responses. -- Posted via http://www.ruby-forum.com/.
|
Pages: 1 Prev: unable to install ruby-debug Next: sudo gem install mysql problem |