Re: ASCII Hexadecimal to ASCII Decimal with NSData
Re: ASCII Hexadecimal to ASCII Decimal with NSData
- Subject: Re: ASCII Hexadecimal to ASCII Decimal with NSData
- From: John Stiles <email@hidden>
- Date: Fri, 9 Nov 2007 16:27:46 -0800
Anything with the high bit set is no longer ASCII.
You could try loading the file as MacRoman or Latin1, any simple
character set will do, but with ASCII you will get a failure (NULL
result) as soon as a byte value above 127 is found.
I am not sure that you are going to get much mileage out of NSString;
you might just go straight to an NSData blob in memory and then work
with the data directly.
On Nov 9, 2007, at 4:22 PM, Simon Setterstrom wrote:
I am trying to read a proprietary file format in and parse it.
I've read
up (soaking up as much as a newbie can) on NSString and NSData and
their
methods allowing you to initialize them to the contents of a file.
About the
encoding of the file, some values are ASCII, but all are 8 bits
guaranteed
(some have the largest bit flipped to signify state change).
Examples of what I've tried respectively:
NSString *path = @"/Users/simon/Desktop/PAGE _001.DHW";
NSString *myFile = [[NSString alloc]
initWithContentsOfFile:path
encoding:NSASCIIStringEncoding
error:NULL];
and
NSData *myData = [[NSData alloc] initWithContentsOfFile:path
options:NSASCIIStringEncoding error:NULL];
I have read that I am better off working with the straight
hexadecimal
ASCII NSData provides me and I would be fine with that, if I knew
how to
convert that into decimal ASCII as I would be able to do everything
I need
then, but I do not know how.
The reason I (probably foolishly) am toying with NSString is that
there is
a Perl program that does what I need to with a similar approach
(reads a
character and uses unpack("C",$aChar)); I thought if I could figure
out how
to change the encoding / reformat the character to display in binary
(possibly putting the character into NSNumber and using
stringValue), I
would have my pretty ASCII decimal number and be set.
NSNumber attempt:
NSString *output = [[NSString alloc] initWithString:@""];
NSString *chunk = [file substringWithRange:NSMakeRange(loopC,1)];
NSNumber *num = [[NSNumber alloc] initWithUnsignedChar: chunk];
output = [output stringByAppendingString: [num stringValue]];
Should I steer myself back towards using NSData and try to parse
each byte
(getBytes :length ??) and convert the hexadecimal ASCII into
decimal ASCII
with some method or formatter?
Or is there a way with NSString to change the format of a character
that
does not fit into a predefined encoding? Subsequently I tried chunk =
[NSString stringWithFormat:@"%c", chunk]; with no luck.
I hope I have been clear with my thoughts; please be patient with
me--I
really am trying not to be burdensome. I know that many of these
concepts
and libraries do not make much sense to me yet so I am hoping for your
guidance.
Any feedback or direction you could give me would be amazing.
Thank you for
donating some of your time to my problem.
Simon
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
40blizzard.com
This email sent to email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden