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
> }
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 mails | Author | Date |
|---|---|---|
| Peter Schols | Oct 15, 18:21 | |
| Robert Tillyard | Oct 15, 18:39 | |
| John Stiles | Oct 15, 19:30 | |
| Ricky Sharp | Oct 15, 19:30 |






Cocoa mail archive

