Permission problem under WinXP

R

RichardOnRails

Hi All,

I generated a Ruby on Rails app, which among other things, had to
import content from a bunch of CSV files from time to time. When I
generated the app, I had a typo: I used cvs instead of csv. When I
started coding, I used csv. It got to be a mess. Being pigheaded I
decided to write a ruby script to transform all file-names and file
content to conform to csv.

The transformation script is posted at http://www.pastie.org/323198.
I've tested the code thoroughly, so I think its really a Windows
problem: it's keeping a lock on the file(s) I'm using despite the
fact that I issued Ruby close commands.

I wonder if anyone has a quick fix for this problem. If not, I'll
walk the extra mile and write my filename changes to disk and write a
stand-alone app to apply those changes. But if there's a slick way to
solves this, I'd like to learn it.

Thanks in Advance,
Richard
 
D

Daniel Berger

RichardOnRails said:
Hi All,

I generated a Ruby on Rails app, which among other things, had to
import content from a bunch of CSV files from time to time. When I
generated the app, I had a typo: I used cvs instead of csv. When I
started coding, I used csv. It got to be a mess. Being pigheaded I
decided to write a ruby script to transform all file-names and file
content to conform to csv.

The transformation script is posted at http://www.pastie.org/323198.
I've tested the code thoroughly, so I think its really a Windows
problem: it's keeping a lock on the file(s) I'm using despite the
fact that I issued Ruby close commands.

I wonder if anyone has a quick fix for this problem. If not, I'll
walk the extra mile and write my filename changes to disk and write a
stand-alone app to apply those changes. But if there's a slick way to
solves this, I'd like to learn it.

Line 26:

data = File.open(name).readlines

There's your open handle. Replace that with:

IO.readlines(name)

Regards,

Dan
 
R

RichardOnRails

Line 26:

data = File.open(name).readlines

There's your open handle. Replace that with:

IO.readlines(name)

Regards,

Dan

Hi Dan,

I just wrote my son, for whom I'm writing this app, that I was
hoping I'd get a magic bullet so that I didn't have to write my array
of name-changes to disk, read them in in second program and copy in my
change algorithm.
There's your open handle ...

And there's my magic bullet. Now I have to apologize for falsely
claiming that Windows was at fault :)

Thank you very much for post such a neat solution.

Best wishes,
Richard
 
R

RichardOnRails

Line 26:

data = File.open(name).readlines

There's your open handle. Replace that with:

IO.readlines(name)

Regards,

Dan

Hey Dan,

Final word: It worked perfectly. Many thanks.

Best wishes,
Richard
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,576
Members
45,054
Latest member
LucyCarper

Latest Threads

Top