Need to check a file for a line
Lets say “this is an example”
I am going to just take every line into an array
and then have a For loop to check the array for that line.
Im pretty sure this will work but is there any cleaner way to do it?
Need to check a file for a line
Lets say “this is an example”
I am going to just take every line into an array
and then have a For loop to check the array for that line.
Im pretty sure this will work but is there any cleaner way to do it?
Peter L. wrote:
Im pretty sure this will work but is there any cleaner way to do it?
File.readlines('file.txt.).each do |line|
puts ‘got it!’ if line =~ /regexp/
end
Hope the helps.
Regards,
Lee
2007/11/23, Lee J. [email protected]:
Peter L. wrote:
Im pretty sure this will work but is there any cleaner way to do it?
File.readlines('file.txt.).each do |line|
puts ‘got it!’ if line =~ /regexp/
end
This is more efficient - no need to load the whole file into mem to
find a single line:
File.foreach “file.txt” do |line|
if /rx/ =~ line
puts “found it”
break
end
end
Cheers
robert
On Nov 23, 1:08 pm, Robert K. [email protected] wrote:
find a single line:
robert–
use.inject do |as, often| as.you_can - without end
Check out
ri IO:foreach
ri IO#each
and use what more suits your needs.
Dima
2007/11/23, Dejan D. [email protected]:
This is more efficient - no need to load the whole file into mem to
and use what more suits your needs.
I am not sure I understand this posting of yours. Are you talking to
the OP or to me? If you are talking to me, foreach is what I used in
the example above.
robert
This is more efficient - no need to load the whole file into mem to
find a single line:File.foreach “file.txt” do |line|
if /rx/ =~ line
puts “found it”
break
end
endCheers
robert
Ahh, good point, touche my good man.
Regards,
Lee
2007/11/23, Lee J. [email protected]:
Cheers
robert
Ahh, good point, touche my good man.
While we’re at it: there is another solution - probably a bit more
elegant:
require ‘enumerator’
File.to_enum(:foreach,“file.txt”).grep(/rx/) {|li| puts li; break}
Kind regards
robert
On Nov 24, 8:58 am, Robert K. [email protected] wrote:
end
File.to_enum(:foreach,“file.txt”).grep(/rx/) {|li| puts li; break}
Kind regards
robert
–
use.inject do |as, often| as.you_can - without end
That’s Ruby beauty, express yourself in a way that suits you the most
and still we all can understand your dialect and enjoy.
Dima
Dejan D. wrote:
On Nov 24, 8:58 am, Robert K. [email protected] wrote:
end
File.to_enum(:foreach,“file.txt”).grep(/rx/) {|li| puts li; break}
Kind regards
robert
–
use.inject do |as, often| as.you_can - without endThat’s Ruby beauty, express yourself in a way that suits you the most
and still we all can understand your dialect and enjoy.
Speak for yourself. I found that solution particularly distasteful. It
turned a simple, easy to read solution, into a convoluted one-liner
mess. And on my system the enumerator solution is 50% slower. But,
that seems to be the Ruby Way, so at some point I guess I’ll have to
drink the koolaid and declare how beautiful solutions like that are.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs