[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

using count += 1, code won't change value in output

Mmcolli00 Mom

12/17/2008 3:23:00 PM

This is supposed to count every line in a file that contails the string
'0004343' however, when I use the puts it will only output 1 and 0. My
file contains 8 instances of '0004343' so I know that this isn't right.
I was thinking that it never changes the value to what happens to it in
the while loop. I know this is probably really simple. I just can't get
it. Please help me? MC

@count = 1
@total = 0
while line = f1.gets
if f1.gets =~ /0004343/ then
@total = @count+= 1
end
end
puts @count
puts @total
--
Posted via http://www.ruby-....

2 Answers

Jan Friedrich

12/17/2008 3:28:00 PM

0

Mmcolli00 Mom wrote:
> This is supposed to count every line in a file that contails the string
> '0004343' however, when I use the puts it will only output 1 and 0. My
> file contains 8 instances of '0004343' so I know that this isn't right.
> I was thinking that it never changes the value to what happens to it in
> the while loop. I know this is probably really simple. I just can't get
> it. Please help me? MC
>
> @count = 1
> @total = 0
> while line = f1.gets
> if f1.gets =~ /0004343/ then
> @total = @count+= 1
> end
> end
> puts @count
> puts @total

Change line 4 to:
if line =~ /0004343/ then

You read twice from the file.

Regards,
Jan
--
Posted via http://www.ruby-....

Mark Thomas

12/17/2008 4:31:00 PM

0

On Dec 17, 10:23 am, Mmcolli00 Mom <mmc_coll...@yahoo.com> wrote:
> This is supposed to count every line in a file that contails the string
> '0004343'

f1.grep(/0004343/).size

-- Mark.