Folks:
Mainly, what I was wondering is if the byteToNum command is the correct one. In 
images, its the convert character to number, but I thought the character 
commands for binary data were going to be deprecated.

Thanks,
Bill
William Prothero
http://es.earthednet.org



On Mar 12, 2014, at 4:55 PM, proth...@earthednet.org wrote:

> Folks:
> Before I bang my head against the wall too much, I'd like to make sure I'm 
> approaching this task correctly.
> I have a digital elevation file consisting of 16 bit 2's complement data. I 
> first determine the position of the data for the desired location, then I do 
> a binary read. 
> 
>  put getAFilePath("files/dems/") into fPath
>   put fPath&"ETOPO5.DAT" into theFile
>   open file theFile for binary read
>   if the result <> empty then
>      answer "Couldn't open DEM file"
>      exit readDemTest
>   end if
> 
> --Then i calculate the byte position where the data should be, then read it 
> using:
>      read from file theFile at thePos for 8  --read 8 chars beginning at 
> thePos (I should only need 2 to get the value)
>      put it into theDepths
>      put byteToNum(byte 1 of theDepths) into b1
>      put byteToNum(byte 2 of theDepths) into b2
> 
> --Then, because I don't remember the byte order, I'm trying each one to see 
> which gives me sensible results
> --It should have a sign bit, so only 7 bits of the most significant byte 
> should count, and the first one is the sign bit.
> 
>      if b1 > 127 then  --sign is negative. numbers from 128 to 255 should be 
> negative
>         put -256+b1 into msb
>         put 256*msb - b2 into depth1
>      else  --sign is positive
>         put b1 into msb
>         put 256*msb + b2 into depth1
>      end if
> --try the other way
>      if b2 > 127 then
>         put -256+b2 into msb
>         put 256*msb - b1 into depth2
>      else
>         put b2 into msb
>         put 256*msb + b1 into depth2
>      end if
> 
> What I'm wondering before I spend more time on this, is whether the livecode 
> commands are the correct ones for this. I have old C code that does some of 
> the same processing, but I can't run it now to test.
> 
> Thanks,
> Bill
> 
> William Prothero
> http://es.earthednet.org
> 
> 
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode@lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription 
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode


_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to