Skip navigation.
 
mlRe: Reading binary files
FROM : Robert Tillyard
DATE : Fri Oct 15 18:39:02 2004

Would you not needa different function to swap 8 bytes than 4? I don't 
know and have never used these functions but I'm guessing there must be 
a NSSwapDouble....() as I think you're just swapping the first four 
bytes.

Regards, Rob.

On 15 Oct 2004, at 5:21 pm, Peter Schols wrote:

> Hi,
>
> I'm trying to read the header of a shape (.shp) file (containing 
> geographical information). This works as expected for reading an 
> integer, but it does not work for reading a double. The data is in 
> little endian format. Any ideas what's going on here?
>
> The .shp file is available upon request.
>
> Thanks!
>
> Peter
>
> Peter Schols
> Laboratory of Plant Systematics - K.U.Leuven
> Belgium
>
> ---
>
> - (IBAction)read:(id)sender;
> {
>    NSFileHandle *file;
>    int type;
>    double number;
>
>    file = [NSFileHandle 
> fileHandleForReadingAtPath:@"/Users/mac/Desktop/st12_d00_shp/
> st12_d00.shp"];
>    [file readDataOfLength:32];
>
>    [[file readDataOfLength:4] getBytes:&type];
>    type = NSSwapLittleLongToHost(type);
>    NSLog(@"Type: %d", type);  // The type is correctly reported as 
> being 5
>
>    [[file readDataOfLength:8] getBytes:&number];
>    number = NSSwapLittleLongToHost(number);
>    NSLog(@"Number: %lf", number);  // The Number is reported as 
> being 0.00000 which is not the case
> }

Related mailsAuthorDate
mlReading binary files Peter Schols Oct 15, 18:21
mlRe: Reading binary files Robert Tillyard Oct 15, 18:39
mlRe: Reading binary files John Stiles Oct 15, 19:30
mlRe: Reading binary files Ricky Sharp Oct 15, 19:30