binaryDecode with variable number of parameters

Len Morgan len-morgan at crcom.net
Sun Feb 19 19:08:24 EST 2012


Related to my problem with reading binary data from a socket, how do I 
handle a variable number of numbers that will come in with binaryDecode?

To explain, I get a number in the packet header that tells me there are 
x number of bytes to follow in this packet.  I know the first byte is a 
remote ID and the second is a function code.  Based on the function 
code, the number of two byte integers that follows is going to be (the 
number of bytes in the message / 2) - 1 (for the function code and 
remote ID).  One time there might be 2 integers to follow, another there 
might be 10.  There is a "number of words" number that is part of the 
command so I know how many words there will be but the binaryDecode 
function requires that I specify a name for each variable that is going 
to get a value.

Ideally, I'd like to put all of these words in an array so I can process 
them, but this doesn't seem to be an option for the binaryDecode 
command.  Should I build up a string that has 
"...,var[0],var[1],...,var[x] in it to account for all the variables and 
then use a "do" or "dispatch" to actually do the binaryDecode?

Also, if I use var[0], var[1], etc., do I need to create ALL of the 
indexes first (for binaryDecode) or will just creating the first one 
(var[0]) be sufficient?

Thanks,

len morgan




More information about the use-livecode mailing list