On Tuesday, August 5, 2003, at 08:51 PM, David Beck wrote:
The question is: What is the best way to read/write a bunch of 2-byte integers in network byte order on Windows??
Network order is a good way to go.
I looked in to read/writing raw chars, and then using the
binaryEncode/binaryDecode functions to translate the raw binary data to
numbers, but those functions require a parameter for every value that gets
encoded/decoded. I need to be able to read/write sequences of up to 1120
2-byte integers in a reasonable amount of time, and I can neither supply
1120 arguments to those functions, nor can I read/write the ints one at a
time, since doing this is unacceptably slow.
You can always use numToChar() and charToNum(), but I think the direction you are heading is probably better in this case.
Read and write your file with URL "binfile:...".
For writing, accumulate the file value with 'put ... after...' and then put the file. That is fast. Create your two byte strings one at a time with binaryEncode() in a loop and append them.
For reading files, you can use "repeat with i = 1 to the length of myBinFile by 2". The use i to pick off a two char string and binaryDecode() that. (I'm not sure I have that last cycle of that loop right.)
I don't think that is as slow as it looks. (Even so, I have suggested an accumulation syntax for the format strings to handle data like this; we'll see if that goes anywhere.)
ps. As a side note, I noticed that there is no support for 4-byte integers
in network byte order from the binaryEncode/binaryDecode functions. This
isn't a problem for me, since almost all of the data I need to read/write is
2-byte integers, but I thought it was strange since there is support for
4-byte integers in host byte order from the same functions.
I think this Transcript Dictionary format description is in error:
N: convert next amount 4-byte chunks of data to unsigned integers in network byte order
This is actually signed. (I think it might accept an unsigned number in the high range in binaryEncode(), though.)
Dar Scott
_______________________________________________ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
