Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > Search File Contents

Reply
Thread Tools

Search File Contents

 
 
Andy Dbest
Guest
Posts: n/a
 
      06-08-2008
Hi Guys,

I have a small code block that is frustrating me for some time now. I
want to search for some text in a file. Simple isnt it?

def read_file week_num
week_num = week_num.to_s
f = File.open("fixtures.txt", "r")
lines = f.readlines
#week_num = '1.'
lines.each do|line|
if line.chomp.eql? week_num
puts "Found the week number"
end
end
f.close
end

The above is the method, and I am searching for "1.". I am passing the
variable "week_num" and i even tried to convert it to string. The search
code as it is right now, does not output "Found the week number", even
though the file contains "1."

If i uncomment the line that assigns week_num to '1.' directly, then it
works. What am i doing wrong?
--
Posted via http://www.ruby-forum.com/.

 
Reply With Quote
 
 
 
 
Stefano Crocco
Guest
Posts: n/a
 
      06-08-2008
On Sunday 08 June 2008, Andy Dbest wrote:
> Hi Guys,
>
> I have a small code block that is frustrating me for some time now. I
> want to search for some text in a file. Simple isnt it?
>
> def read_file week_num
> week_num = week_num.to_s
> f = File.open("fixtures.txt", "r")
> lines = f.readlines
> #week_num = '1.'
> lines.each do|line|
> if line.chomp.eql? week_num
> puts "Found the week number"
> end
> end
> f.close
> end
>
> The above is the method, and I am searching for "1.". I am passing the
> variable "week_num" and i even tried to convert it to string. The search
> code as it is right now, does not output "Found the week number", even
> though the file contains "1."
>
> If i uncomment the line that assigns week_num to '1.' directly, then it
> works. What am i doing wrong?


If assiging week_num a value inside the method makes the code work, I'd say
the problem is in the argument which is passed to the method. Have you tried
to put a

puts week_num

at the beginning of the method, to see whether the argument you get is the one
you expect?

Stefano


 
Reply With Quote
 
 
 
 
Andy Dbest
Guest
Posts: n/a
 
      06-08-2008
Stefano Crocco wrote:
> On Sunday 08 June 2008, Andy Dbest wrote:
> If assiging week_num a value inside the method makes the code work, I'd
> say
> the problem is in the argument which is passed to the method. Have you
> tried
> to put a
>
> puts week_num
>
> at the beginning of the method, to see whether the argument you get is
> the one
> you expect?
>
> Stefano


I tried the puts line, just inside the method and it does return '1.'
for me. It kind of annoying...
--
Posted via http://www.ruby-forum.com/.

 
Reply With Quote
 
Stefano Crocco
Guest
Posts: n/a
 
      06-08-2008
On Sunday 08 June 2008, Andy Dbest wrote:
> Stefano Crocco wrote:
> > On Sunday 08 June 2008, Andy Dbest wrote:
> > If assiging week_num a value inside the method makes the code work, I'd
> > say
> > the problem is in the argument which is passed to the method. Have you
> > tried
> > to put a
> >
> > puts week_num
> >
> > at the beginning of the method, to see whether the argument you get is
> > the one
> > you expect?
> >
> > Stefano

>
> I tried the puts line, just inside the method and it does return '1.'
> for me. It kind of annoying...


Can you post a sample of the file you're searching in? This way, I can try
your code myself and see what's going on.

Stefano

 
Reply With Quote
 
Andy Dbest
Guest
Posts: n/a
 
      06-08-2008
Stefano Crocco wrote:
> On Sunday 08 June 2008, Andy Dbest wrote:
>> > at the beginning of the method, to see whether the argument you get is
>> > the one
>> > you expect?
>> >
>> > Stefano

>>
>> I tried the puts line, just inside the method and it does return '1.'
>> for me. It kind of annoying...

>
> Can you post a sample of the file you're searching in? This way, I can
> try
> your code myself and see what's going on.
>
> Stefano


sure...

here is an extract of the file

1.

aaa.txt - bbb.txt
aac.txt - bbc.tct

2.

aac.txt - bbb.txt
aaa.txt - bbc.txt
--
Posted via http://www.ruby-forum.com/.

 
Reply With Quote
 
Stefano Crocco
Guest
Posts: n/a
 
      06-08-2008
On Sunday 08 June 2008, Andy Dbest wrote:
> Stefano Crocco wrote:
> > On Sunday 08 June 2008, Andy Dbest wrote:
> >> > at the beginning of the method, to see whether the argument you get is
> >> > the one
> >> > you expect?
> >> >
> >> > Stefano
> >>
> >> I tried the puts line, just inside the method and it does return '1.'
> >> for me. It kind of annoying...

> >
> > Can you post a sample of the file you're searching in? This way, I can
> > try
> > your code myself and see what's going on.
> >
> > Stefano

>
> sure...
>
> here is an extract of the file
>
> 1.
>
> aaa.txt - bbb.txt
> aac.txt - bbc.tct
>
> 2.
>
> aac.txt - bbb.txt
> aaa.txt - bbc.txt


I've tried it and it works even without the assignment. Are you sure there
isn't any trailing space afer 1. in the method argument? Using puts as I
suggested in my first post wouldn't have shown that. You can try examining the
argument with p, instead of puts, which displays the string with special
characters escaped and surrounded by quotes. If everything is correct, the
line

p week_num

should output

"1."

If there are trailing spaces, you'll see something like

"1. "

Stefano


 
Reply With Quote
 
Andy Dbest
Guest
Posts: n/a
 
      06-08-2008
Stefano Crocco wrote:
> On Sunday 08 June 2008, Andy Dbest wrote:


> I've tried it and it works even without the assignment. Are you sure
> there
> isn't any trailing space afer 1. in the method argument? Using puts as I
> suggested in my first post wouldn't have shown that. You can try
> examining the
> argument with p, instead of puts, which displays the string with special
> characters escaped and surrounded by quotes. If everything is correct,
> the
> line
>
> p week_num
>
> should output
>
> "1."
>
> If there are trailing spaces, you'll see something like
>
> "1. "
>
> Stefano


Thanks Stefano,

the p week_num line did the trick, i noticed that there was a leading
space. I was taking the input from an FXRuby text control, in which i
introduced a space.

Have fixed it now.

Cheers and thanks.
Andy
--
Posted via http://www.ruby-forum.com/.

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Adding contents on yaml file without overwriting actual contents Kamarulnizam Rahim Ruby 4 01-28-2011 09:10 AM
if innerHTML used twice then it replaces the contents i want it to display all the contents virendra.amritkar@gmail.com Javascript 0 06-29-2007 08:13 AM
search within a search within a search - looking for better way...my script times out Abby Lee ASP General 5 08-02-2004 04:01 PM
Can I restrict both attribute contents and element contents in schema Don Adams XML 1 03-05-2004 12:48 PM



Advertisments