Re: Trouble reading bytes

new topic     » goto parent     » topic index » view thread      » older message » newer message

----- Original Message ----- 
>From: dstanger at belco.bc.ca 
>Subject: Trouble reading bytes
>
>
>
>Im using this method to write the contents of a 
>sequence to a file:
>
>data = {{0,0,0,0,0},
>           {1,1,1,1,1},
>           {2,2,2,2,2},
>           {3,3,3,3,3}} 
>
>fn = open("c:\file.dat", "w")
>     for i = 1 to length(data) do
>         puts(fn, data[i])
>     end for
>close(fn)
>
>But when I read it back from the file into a sequence
>using getc() sometimes a -1 is returned rather than
>the number that I originally saved. Where am I going
>wrong?
>

The "puts" routine sends BYTES to the specified device, not SEQUENCES. Using
this in the example above would give you a file with a total of 20 bytes, the
first 5 all zero, the next 5 all 1, etc...

The "getc" routine reads BYTES from the specified device not SEQUENCES. The '-1'
return value just means you got to end of file.

Try this instead...

constant data = {{0,0,0,0,0},
           {1,1,1,1,1},
           {2,2,2,2,2},
           {3,3,3,3,3}} 
integer fn

fn = open("c:\\file.dat", "w")
     for i = 1 to length(data) do
         print(fn, data[i])
         puts(fn,' ') -- needed to seperate the sequences!
         -- I suspect this is a bug in get() that requires this.
     end for
close(fn)

fn = open("c:\\file.dat", "r")
sequence res
res = get(fn)
while res[1] != GET_EOF do
    ? res[2]
    res = get(fn)
end while
close(fn)

-- 
Derek

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu