[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

Erasing text from a file

Lucas L.

5/11/2008 10:57:00 AM

To me it seems it should be a rather obvious thing, but no matter where
I look, I can't find how to erase text from a file or clear a file. The
only things I have found are moving the the cursor to the start and
writing more text over it (but that doesn't get rid of it), or reopening
the file.

Is there a way to simple erase text from the file?

Thanks,
Lucas
--
Posted via http://www.ruby-....

6 Answers

Andrea Fazzi

5/11/2008 11:21:00 AM

0

Lucas L. ha scritto:
> To me it seems it should be a rather obvious thing, but no matter where
> I look, I can't find how to erase text from a file or clear a file. The
> only things I have found are moving the the cursor to the start and
> writing more text over it (but that doesn't get rid of it), or reopening
> the file.
>
> Is there a way to simple erase text from the file?
>
> Thanks,
> Lucas
>

File.open('file.txt', 'w') { |file| file = nil }


Lucas L.

5/11/2008 12:15:00 PM

0

Andrea Fazzi wrote:
> File.open('file.txt', 'w') { |file| file = nil }

That reopens the file. Is there a way to do it without reopening?
--
Posted via http://www.ruby-....

Sebastian Hungerecker

5/11/2008 12:35:00 PM

0

Lucas L. wrote:
> Andrea Fazzi wrote:
> > File.open('file.txt', 'w') { |file| file = nil }

The "file = nil" part is completely unneccessary. You can just do
File.open('file.txt', 'w') {}


> Is there a way to do it without reopening?

I don't think there is.

HTH,
Sebastian
--
NP: Depeche Mode - Freestate
Jabber: sepp2k@jabber.org
ICQ: 205544826

Andrea Fazzi

5/11/2008 1:19:00 PM

0

Sebastian Hungerecker ha scritto:
> Lucas L. wrote:
>
>> Andrea Fazzi wrote:
>>
>>> File.open('file.txt', 'w') { |file| file = nil }
>>>
>
> The "file = nil" part is completely unneccessary. You can just do
> File.open('file.txt', 'w') {}
>
>

Ok, thank you :-)

Andrea


ts

5/11/2008 1:30:00 PM

0

Lucas L. wrote:
> Is there a way to simple erase text from the file?

perhaps File#truncate

---------------------------------------------------------- File#truncate
file.truncate(integer) => 0
------------------------------------------------------------------------
Truncates _file_ to at most _integer_ bytes. The file must be
opened for writing. Not available on all platforms.

f = File.new("out", "w")
f.syswrite("1234567890") #=> 10
f.truncate(5) #=> 0
f.close() #=> nil
File.size("out") #=> 5



Guy Decoux


Lucas L.

5/12/2008 1:20:00 AM

0

ts wrote:
> perhaps File#truncate

The documentation says this is platform specific, which I'd like to
avoid.
File.open will have to do.
--
Posted via http://www.ruby-....