How to find at which line characters appear

Hello,

I have a file that includes a “---------” string at a certain line
number. How can I find out at which line number the string occurs?
Would it be best to split the text file into an array with split("\n")
and then use a for loop or is there some other hidden methods in ruby?

Basically I want to start reading a text file after the “---------” line
that appears in it.

Can someone help please?

Thanks in advance.

f = File.open(‘filename’)
until f.gets.chomp == “---------”; end
#continue processing here

That should do the trick. The next line returned by f.gets will be the
first line after the “--------”. If you want the actual line number,
f.lineno should give it to you.

-Brett

Al Cholic wrote:

Hello,

I have a file that includes a “---------” string at a certain line
number. How can I find out at which line number the string occurs?
Would it be best to split the text file into an array with split("\n")
and then use a for loop or is there some other hidden methods in ruby?

Basically I want to start reading a text file after the “---------” line
that appears in it.

Can someone help please?

Thanks in advance.

2 methods come to my mind to do that:

  1. as you said, split and find what index in the array contains the line
  2. get the offset (String#index) of the first “---------”, count the
    "\n"s in the substring 0,offset.
    I’d assume that the second is faster.

Regards
Stefan

Whoops, I should have read this paragraph too:

Basically I want to start reading a text file after the “---------” line
that appears in it.

Then of course I’d do it just as Brett already said: read until you get
there not processing the data, then continue to read, this time
processing the data.

Regards
Stefan

Stefan R. wrote:

Whoops, I should have read this paragraph too:

Basically I want to start reading a text file after the “---------” line
that appears in it.

Then of course I’d do it just as Brett already said: read until you get
there not processing the data, then continue to read, this time
processing the data.

Regards
Stefan

Thanks for guys’ advice. I also came up with another way to get the
text.

def find_component_list(text)
/___+/.match(text).post_match.strip.split("\n")
end

Im using a regular expression.

How good is this in terms of efficiency compared to the other methods?

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs