[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

How to check for where a text file begins?

Kristen

7/2/2007 11:09:00 PM

Hello,

Im working with some imported text files and I need check where the
first 2 lines of text occur. The files can have white space in the
beginning, so I cant just do a split("\n") and take the first two
elements of the array. Im a bit confused about this stuff. Here is
what I've been trying to do with regular expressions, but no results
yet:

def find_first_two_lines(file)
/\S\n\S/.match(file)
end

If anyone has any ideas, please do share!

Thanks in advance!

--
Posted via http://www.ruby-....

2 Answers

Mikel Lindsaar

7/2/2007 11:19:00 PM

0

def find_first_two_lines(text)
text.strip.split("\n").slice(0,2)
end

Returns an array of the first two non whitespace lines delimited by \n

(\n is also included in whitespace per strip... handly)

Regards

Mikel Lindsaar
http://www.blogno...



On 7/3/07, Al Cholic <desertfox@hot.ee> wrote:
> Hello,
>
> Im working with some imported text files and I need check where the
> first 2 lines of text occur. The files can have white space in the
> beginning, so I cant just do a split("\n") and take the first two
> elements of the array. Im a bit confused about this stuff. Here is
> what I've been trying to do with regular expressions, but no results
> yet:
>
> def find_first_two_lines(file)
> /\S\n\S/.match(file)
> end
>
> If anyone has any ideas, please do share!
>
> Thanks in advance!
>
> --
> Posted via http://www.ruby-....
>
>

Robert Klemme

7/3/2007 2:33:00 PM

0

2007/7/3, Al Cholic <desertfox@hot.ee>:
> Hello,
>
> Im working with some imported text files and I need check where the
> first 2 lines of text occur. The files can have white space in the
> beginning, so I cant just do a split("\n") and take the first two
> elements of the array. Im a bit confused about this stuff. Here is
> what I've been trying to do with regular expressions, but no results
> yet:
>
> def find_first_two_lines(file)
> /\S\n\S/.match(file)
> end
>
> If anyone has any ideas, please do share!

What exactly do you want to do with them? If you have your file
contents in a single string you can do s.sub(/^\s+/, '') in order to
get rid of all leading whitespace. You can as well do the checking
during reading, probably like this:

contents = nil
io.each do |line|
contents = "" if contents.nil? && /^\s*$/ =~ line
contents << line if contents
end

Kind regards

robert