Forum: Ruby finding a range of lines from a text document

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
803ad415efcdcbf09b1addeb319650d7?d=identicon&s=25 Adam Akhtar (thegeezer3)
on 2009-01-09 16:56
Can anyone help me? ill try and keep it short and to the point.

wish : to be able to grab select lines from a text document which meet
some criteria.

current idea: simply read the file as one big string and use a regexp to
find all text between a /marker_one/ and /marker_two/

but: in general ill only be ever manipulating a single line at a time so
simply using readlines to store a file into an array and they
manipulating that seems a lot easier than storing a file as a string and
figuring out where one line starts and one line ends.

file example:

### next actions ###

### project: buy pc ###
3 read posts on hardforum
4 use froogle.com
3 buy parts
4 build pc
5 install os

### project: become millionaire ###
2 get job
3 save money
4 start own business
3 sell business
3 sell drugs

### project: have the biggest collection of pants on earth
3 learn about pants
4 become a member of pantsinc.net


aim: to have a method which will take the top most line of each project
and copy it into the next actions area. Something easy to read yet
relatively efficient.

yes this is yet another todo list. A task will only ever be one line.
Hence why dealing with an array seems easier.

If anyone has any tips suggestions etc it will help me out a lot.
63529e6fbb35dde336d471b569b84d87?d=identicon&s=25 Rodrigo Bermejo (rbermejo)
on 2009-01-09 18:31
Adam Akhtar wrote:
> Can anyone help me? ill try and keep it short and to the point.
>
> wish : to be able to grab select lines from a text document which meet
> some criteria.
>
> current idea: simply read the file as one big string and use a regexp to
> find all text between a /marker_one/ and /marker_two/
>
> but: in general ill only be ever manipulating a single line at a time so
> simply using readlines to store a file into an array and they
> manipulating that seems a lot easier than storing a file as a string and
> figuring out where one line starts and one line ends.
>
> file example:
>
> ### next actions ###
>
> ### project: buy pc ###
> 3 read posts on hardforum
> 4 use froogle.com
> 3 buy parts
> 4 build pc
> 5 install os
>
> ### project: become millionaire ###
> 2 get job
> 3 save money
> 4 start own business
> 3 sell business
> 3 sell drugs
>
> ### project: have the biggest collection of pants on earth
> 3 learn about pants
> 4 become a member of pantsinc.net
>
>
> aim: to have a method which will take the top most line of each project
> and copy it into the next actions area. Something easy to read yet
> relatively efficient.
>
> yes this is yet another todo list. A task will only ever be one line.
> Hence why dealing with an array seems easier.
>
> If anyone has any tips suggestions etc it will help me out a lot.

This one of the algorithms you will find along the programmer way.
I am not going to give you the hole solution ..but here is a clue..

read line by line
  once you find the starting tag turn on a flag
  do whatever you want with the current line if the flag is on
  once you find the ending tag turn off the flag

-r.
63529e6fbb35dde336d471b569b84d87?d=identicon&s=25 Rodrigo Bermejo (rbermejo)
on 2009-01-09 20:21
Rodrigo Bermejo wrote:
> Adam Akhtar wrote:
>> Can anyone help me? ill try and keep it short and to the point.
>>
>> wish : to be able to grab select lines from a text document which meet
>> some criteria.
>>
>> current idea: simply read the file as one big string and use a regexp to
>> find all text between a /marker_one/ and /marker_two/
>>
>> but: in general ill only be ever manipulating a single line at a time so
>> simply using readlines to store a file into an array and they
>> manipulating that seems a lot easier than storing a file as a string and
>> figuring out where one line starts and one line ends.
>>
>> file example:
>>
>> ### next actions ###
>>
>> ### project: buy pc ###
>> 3 read posts on hardforum
>> 4 use froogle.com
>> 3 buy parts
>> 4 build pc
>> 5 install os
>>
>> ### project: become millionaire ###
>> 2 get job
>> 3 save money
>> 4 start own business
>> 3 sell business
>> 3 sell drugs
>>
>> ### project: have the biggest collection of pants on earth
>> 3 learn about pants
>> 4 become a member of pantsinc.net
>>
>

a better solution will be to have your project data in a
"self-descriptive" format like XML (or YAML)

sooner or later you will have to use XML ..
it's a good chance for you to learn it and added it to your toolbox

-r.
803ad415efcdcbf09b1addeb319650d7?d=identicon&s=25 Adam Akhtar (thegeezer3)
on 2009-01-10 04:21
thank you for the algorithm prompt. When i read your suggestion I though
why didnt i think of that (-perhaps too much red wine at the time).

Ive heard about xml but dont know much about it. Ill go away and learn
about it now.

Thank you very much!
This topic is locked and can not be replied to.