Wow - this seemingly "little" question really sparked some responses!

I like it when that happens because it really shows off the brilliance of
Rebol and the people mastering it.

All solutions will go into my library collection since they all shine in
their own way and I can learn from all of them - so I thank you all.

As you likely have guessed, I asked because I need to re-format phone=
 numbers.
The vast majority of these will arrive formatted by various people according=
 to what
they consider proper formatting - sometimes quite creative and riddled with=
 typos as well.
At any time, I have to be prepared for the occasional complete junk string.

The numbers may reside in MySQL tables or in text files with one phone=
 record (number & address) per 
line. Each of these tables or text files will be processed exactly once (as=
 far as the phone number
standardizing goes) - speed is important but a extra handful of seconds per=
 file (containing between 
500,000 and 1,000,000 numbers) won't hurt anybody.

The phone numbers are stored with a max of 15 characters each prior to=
 processing - these strings 
will be overwritten with a standardized phone number string if they contain=
 a valid number and will 
be emptied otherwise.

For now, all phone numbers hail from
North America - so valid lengths are 

a) 7 digits    - local number
b) 10 digits  - area code included
c) 11 digits  - leading 1 in front of area code


Here's the function logic I intend to use:

1) Lose all non-numerical characters from ph#-string 
2) If length not in (7,10,11) return empty string because phone# is invalid
3) If length =3D 11 and first char =3D 1 then chop off first char     // now=
 only 2 possibilities left    
4) If length =3D 10 then 
       frame the three leftmost digits with a pair or parentheses
       insert a '1' in front
5) Insert hyphen before fourth character from the end of string

Does this sound like a good strategy or are there other, maybe radically=
 different (but speedy)
ways to do this?

TIA,
Kai
-- 
To unsubscribe from the list, just send an email to 
lists at rebol.com with unsubscribe as the subject.

Reply via email to