Morton Goldberg
10/11/2006 2:17:00 PM
On Oct 11, 2006, at 7:35 AM, Vidar Hokstad wrote:
>
> Bil Kleb wrote:
>> So, the tasks are roughly,
>>
>> 1) Goto line 1707 of the file
>> 2) Search backward until line.match /\Wdt\W/i
>> 3) Remove /dt/i
>>
>> I'm stuck on an elegant, i.e., Ruby, way to do the first
>> two steps. Please point me toward the glittering light.
>
> For 1) Assuming the lines aren't fixed length: Read in the entire file
> into an array (using IO#readlines), in which case you can skip
> straight
> to the line you want, or counting line by line until you find the one
> you want.
>
> For 2) Any particular reason why you need to search backwards? My
> suggestion would be to look at String#gsub - that will help you handle
> both 2) and 3) in one go.
I like this idea, but I would suggest using a hash rather than an
array. Hash the lines keyed to their line number. Then you can search
any which way you like.
Regards, Morton