[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

Issues with pack/write on WinXP compared to Linux

james.d.masters

3/23/2007 6:45:00 PM

I'm sure that this has to do with CR/LF on DOS/Windows filesystems,
but I'm not sure how to fix:

File.open('test', 'w') do |file|
file.write([10].pack('n')) #=> 2 [bytes]
end

On Linux, the file comes out as having 2 bytes (as expected):

% ls -l test
-rw-rw-r-- 1 jamesm eng 2 Mar 23 11:38 test
% od -h test
0000000 0a00
0000002

On WinXP it has 3 bytes (BTW, write still returns 2 [bytes] in irb on
WinXP):

bash-2.05a$ ls -l test
-rw-r--r-- 1 Administ None 3 Mar 23 11:40 test
bash-2.05a$ od -h test
0000000 0d00 000a
0000003

This does not happen when writing out another number (say 11). Again,
it's probably a CR/LF deal, but I don't know how to remedy. Thanks in
advance...

3 Answers

Tim Hunter

3/23/2007 6:57:00 PM

0

unknown wrote:
> I'm sure that this has to do with CR/LF on DOS/Windows filesystems,
> but I'm not sure how to fix:
>
> File.open('test', 'w') do |file|
> file.write([10].pack('n')) #=> 2 [bytes]
> end

File.open('test', 'wb') do |file|

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

james.d.masters

3/23/2007 7:09:00 PM

0

On Mar 23, 11:56 am, Tim Hunter <rmag...@gmail.com> wrote:
> File.open('test', 'wb') do |file|

Excellent - I knew it was something simple. This was my first binary
and DOS/Windows project in Ruby... Thanks!

Ara.T.Howard

3/23/2007 9:32:00 PM

0