ruby File#sysread

A

Aatch

I am attempting to create a program that can transfer files. It so far
can send pure-text files no problem, but it has issues with reading
anything else. EG. It cut a 6 MB mp3 down to a 6 kb file.

After a bit of fiddling around I found that the program wasn't reading
the file properly. I'm currently using File#sysread to read the file and
File#syswrite to write the file. I don't know why it wont read the whole
file, can some body please help. Here is a copy of a similar program
with the same problem. (please dont mock it uselessness, it was made to
try and sort aforementioned problem).


f1 = File.new("BIG.txt")
f2 = File.new("big.txt", "w")

contents = f1.sysread(f1.stat.size-2)

print f1.stat.size.to_s + "\n"
print contents.length.to_s + "\n"

f2.syswrite contents

print f2.stat.size.to_s + "\n"

sleep 2
 
T

Tim Hunter

Aatch said:
I am attempting to create a program that can transfer files. It so far
can send pure-text files no problem, but it has issues with reading
anything else. EG. It cut a 6 MB mp3 down to a 6 kb file.

On Windows? "rb"
 
B

Bill Kelly

From: "James Milner said:
<.< >.> yes. I have no other choice. But yes, I was thinking it might be
windows fault

Just in case the answer wasn't clear, Windows pretends that "text" files
are different from "binary" files.

So you'll want to use "binary mode" to read/write binary files on Windows.

Thus, use "rb" instead of "r" to read a binary file, and "wb" instead of "w"
to write a binary file.


Hope this helps,

Bill
 
A

Aatch Random

Bill said:
Just in case the answer wasn't clear, Windows pretends that "text" files
are different from "binary" files.

So you'll want to use "binary mode" to read/write binary files on
Windows.

Thus, use "rb" instead of "r" to read a binary file, and "wb" instead of
"w"
to write a binary file.


Hope this helps,

Bill

Ahh, thanks. I've had little experience with the File class in ruby.
I'll test it now. It should ::prays:: work.
 
N

Nobuyoshi Nakada

Hi,

At Fri, 15 Jun 2007 13:09:49 +0900,
Aatch Random wrote in [ruby-talk:255684]:
I'll test it now. It should ::prays:: work.

It's an eternal curse against Windows programers. :)
 

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,755
Messages
2,569,534
Members
45,008
Latest member
Rahul737

Latest Threads

Top