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
Lucas L. ha scritto:
File.open(‘file.txt’, ‘w’) { |file| file = nil }
Andrea F. wrote:
File.open(‘file.txt’, ‘w’) { |file| file = nil }
That reopens the file. Is there a way to do it without reopening?
Lucas L. wrote:
Andrea F. 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
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
ts wrote:
perhaps File#truncate
The documentation says this is platform specific, which I’d like to
avoid.
File.open will have to do.