[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

Simple editing. Works in IRB; not as script.

Peter Bailey

1/16/2007 5:24:00 PM

Hello,
I'm trying to create a simple editing template for myself, just some
code that I can use for future editing needs, where I open a file,
change stuff, and then save the file. I created this simple little
script, but, it doesn't work when I run it. It complains about line 3. I
get an exception with "wrong number of arguments (0 for 1)." But, when I
do this script, line for line, in IRB, I have no problems.

Dir.chdir("C:/documents and settings/pb4072/my documents/scripts/ruby")
contents = File.read{"test1.txt"}

#The file is just a bunch of repeated "The quick brown fox..." phrases.

contents.gsub!(/fox/, "horse")
File.open("test2.txt", "w") { |f| f.print contents }

Thanks,
Peter

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

5 Answers

James Gray

1/16/2007 5:30:00 PM

0

On Jan 16, 2007, at 11:24 AM, Peter Bailey wrote:

> contents = File.read{"test1.txt"}

That's a typo. You want (...) instead of {...}.

James Edward Gray II

Peter Bailey

1/16/2007 5:39:00 PM

0

James Gray wrote:
> On Jan 16, 2007, at 11:24 AM, Peter Bailey wrote:
>
>> contents = File.read{"test1.txt"}
>
> That's a typo. You want (...) instead of {...}.
>
> James Edward Gray II

Duh, sorry James, but, I don't see what you mean. I don't have any (...)
data in there. The test file I made is named "test1.txt.")

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

James Gray

1/16/2007 6:01:00 PM

0

On Jan 16, 2007, at 11:39 AM, Peter Bailey wrote:

> James Gray wrote:
>> On Jan 16, 2007, at 11:24 AM, Peter Bailey wrote:
>>
>>> contents = File.read{"test1.txt"}
>>
>> That's a typo. You want (...) instead of {...}.
>>
>> James Edward Gray II
>
> Duh, sorry James, but, I don't see what you mean. I don't have any
> (...)
> data in there. The test file I made is named "test1.txt.")

The correct line of code is:

contents = File.read("test1.txt")

James Edward Gray II

Peter Bailey

1/16/2007 7:07:00 PM

0

Tamreen Khan wrote:
> On 1/16/07, James Edward Gray II <james@grayproductions.net> wrote:
>> >> James Edward Gray II
>> >
>> > Duh, sorry James, but, I don't see what you mean. I don't have any
>> > (...)
>> > data in there. The test file I made is named "test1.txt.")
>
>
> You need to pass File.read a simple method argument, which goes inside
> parentheses, you don't need a block.

I don't understand. My line says this:

contents = File.read{"test1.txt"}

I'm using parentheses, no block. I've done this in a number of other
scripts, and, they work fine.

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

Peter Bailey

1/16/2007 7:24:00 PM

0


>
> Those aren't parentheses, they're braces, which means you're passing a
> block
> to it.
> You have to use ( instead of { .
>
> contents= File.read("test1.txt")

Yes, I'm an idiot. Thank you very much. I need really big glasses.

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