This is a great forum, I can't believe all the people that pitched in to help...

Thanks everybody for all the time and help...

This is actually a really nice number formatting method that will go in my 
BHUtility.m You can format any way you want....

Notice that the first three results are 10 digits, after I had stripped out all 
non-digits, and the fourth example contains 14 digits after all the junk chars 
are stripped out. I wrote a couple of methods that strip out leading, trailing 
spaces, converts multiple spaces to single spaces.

The formatters also do capitalization after cleanup, convert middle names to 
capitalized middle initials with a period on the end, convert state names to 
short state initials, etc.

In this case the formatter strips out everything except digits

If anybody is interested in these formatter methods, I can post them.

Thanks again,

Bill Hernandez
Plano, Texas

RESULTS:

Loading program into debugger…
Program loaded.
run
[Switching to process 6148]
Running…
2010-04-13 22:29:15.777 Formatter[6261:a0f] [4626] returnString = (123) 456-7890
2010-04-13 22:29:15.779 Formatter[6261:a0f] [4626] returnString = 123.456.7890
2010-04-13 22:29:15.779 Formatter[6261:a0f] [4626] returnString = 
<[123.456.7890]>
2010-04-13 22:29:15.780 Formatter[6261:a0f] [4626] returnString = (123) 
456-7890 [extension 1234]
kill
quit

The Debugger has exited with status 0.


// 
+---------+---------+---------+---------+---------+---------+---------+---------+
- (void)awakeFromNib
{
    // I have already run a routine to strip all non digits by this time
    NSString *strippedNumber = @"1234567890";
    
    NSString *phoneNumber;
    
    BOOL useFormatter = YES;
    
    if(useFormatter)
    {
        phoneNumber = [BHUtility bhFormatNumberString:strippedNumber 
withFormat:@"(###) ###-####"];        
        phoneNumber = [BHUtility bhFormatNumberString:strippedNumber 
withFormat:@"###.###.####"];        
        phoneNumber = [BHUtility bhFormatNumberString:strippedNumber 
withFormat:@"<[###.###.####]>"];    
        
        strippedNumber = @"12345678901234";        // notice this is 14 digits 
long now
        if([strippedNumber length] == 14)
        {
                phoneNumber = [BHUtility bhFormatNumberString:strippedNumber 
withFormat:@"(###) ###-#### [extension ####]"];        
        }
        else
        {
            phoneNumber = strippedNumber;
        }
    }
    else 
    {
        // THIS IS NOT VERY FLEXIBLE
        if([strippedNumber length] == 10)
        {
            NSString *areacode = [strippedNumber 
substringWithRange:NSMakeRange(0, 3)];
            NSString *exchange = [strippedNumber 
substringWithRange:NSMakeRange(3, 3)];
            NSString *number = [strippedNumber 
substringWithRange:NSMakeRange(6, 4)];
            
            phoneNumber = [NSString stringWithFormat:@"(%@) %...@-%@", 
areacode, exchange, number];
        }
        else
        {
            phoneNumber = strippedNumber;
        }
    }
    NSLog(@"[4626] phoneNumber = %@", phoneNumber);
}
// 
+---------+---------+---------+---------+---------+---------+---------+---------+


// 
+---------+---------+---------+---------+---------+---------+---------+---------+
+ (NSString *)bhFormatNumberString:(NSString *)aNumberString 
withFormat:(NSString *)aFormat
{    
    NSString *myFormatString = [[NSString stringWithString:aFormat] copy];
    NSUInteger myFormatStringLength = [myFormatString length];
    
    NSMutableString *returnString = [[[NSMutableString alloc] 
initWithCapacity:myFormatStringLength] autorelease];

    NSUInteger i = 0;        // i represents the myFormatString character 
position/counter through the loop
    NSUInteger aNumberStringPosition = 0;
    
    unichar myUniChar;
    
    for ( i = 0; i < myFormatStringLength; i ++ )
    {
    myUniChar = [myFormatString characterAtIndex:i];
        // NSLog (@"[4525] i = %i: myUniChar = %C\n", i, myUniChar);
        if (myUniChar == '#')
        {
            // aNumberStringPosition += 1;
            myUniChar = [aNumberString 
characterAtIndex:aNumberStringPosition++];
        }
        [returnString appendFormat:@"%C",myUniChar];
  }
    NSLog(@"[4626] returnString = %@", returnString);
    return returnString;
}
// 
+---------+---------+---------+---------+---------+---------+---------+---------+

_______________________________________________

Cocoa-dev mailing list ([email protected])

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to