Quickie question: Does [NSData getBytes:range:] return <range>.length bytes 
into the buffer specified, even if some of the bytes may be '\0' (terminating 
null), so long as range is valid? I'm trying to read in a specified record from 
a random-access file (record length is 1000 bytes = kRecSize), and I have a 
self.fileContents that's an  @property (nonatomic, strong) NSData 
*fileContents, which I set up as follows:

"FSSBorr.m"
-----------
#import "FSSBorr.h"

char buffer[kRecSize + 1]; // <-file scope

#pragma mark "Private Suff"

@interface FSSBorr ()

@property (nonatomic, assign) BORR_REC theRec;
@property (nonatomic, copy) NSString *fileName;     // These two are set up in 
my initWithFile:
@property (nonatomic, strong) NSData *fileContents; // ditto

@end

@implementation FSSBorr

...

-(void)loadRec:(NSUInteger)index
{
NSUInteger byteOffset = index * kRecSize;
NSRange recordRange = NSMakeRange(byteOffset, kRecSize);
char *c = &buffer[0];
char *p = (char *)(&_theRec);

@try
  {
  [self.fileContents getBytes:buffer range:recordRange]; // Problem is here - 
not reading in all 1000 bytes.
  memccpy(p, c, kRecSize, sizeof(char));
  }
@catch (NSException *ex)
  {
  NSLog(@"%ul beyond end of file.\n", (unsigned int)index);
  NSLog(@"NSException thrown: %@\n", [ex description]);
  }
}

@end

The file in question is several hundred kB long, and "index" = 1 for this debug 
session. Is there some way to view the buffer (contents) as a hex dump? I know 
what the bytes should be (I used "hexdump -Cv <filename>.dat > <filename>.txt 
to get the hex dump of <filename>.dat, which is what self.fileContents is 
loaded with in my initWithFile: method of this class.


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to