Solved

# telephone number manipulation

Posted on 2011-09-06
411 Views
Hi

How can I manipulate this string    -800-238-7828

to end up with this string      (800) 238 7828

Thanks

Mike
0
Question by:BulldogMike

LVL 2

Assisted Solution

gingerdeb earned 100 total points
ID: 36492080
Try:

Dim ictr as Integer
Dim origString as String
Dim tmpString as String

origString = "-800-238-7828"

ictr = Instr(origString, "-")
While ictr > 0
If ictr = 1 Then
tmpString = "(" + Mid\$(origString, ictr+1)
Elseif ictr = 5 Then
tmpString = Left\$(tmpString, ictr-1) + ") " + Mid\$(tmpString, ictr+1)
Else
tmpString = Left\$(tmpString, ictr-1) + " " + Mid\$(tmpString, ictr+1)
End if
ictr = Instr(tmpString, "-")
Wend
0

LVL 46

Expert Comment

ID: 36492353

x= Split(orig, "-")
conv= "(" + x(1) + ") " + x(2) + " " + x(3)

If you want to accept multiple input formats, have a look at Regex:
http://www.regular-expressions.info/vb.html

If you want it in formula language:

x:= @Trim(@Split(orig; "-"));
conv:= "(" + x[1] + ") " + x[2] + " " + x[3];
0

LVL 11

Assisted Solution

larsberntrop earned 100 total points
ID: 36493939
hey sjef:  You forgot fulltrim in the script example:

``````Function FormatPhone(strPhoneMin\$) As String
Dim x As Variant
x = Fulltrim(Split(strPhoneMin, "-"))
If Ubound(x) > 1 Then
FormatPhone = "(" & x(0) & ") " & x(1) & " " & x(2)
Else
FormatPhone = Join(x)
Endif
End Function
``````
0

LVL 46

Expert Comment

ID: 36493973
Yes, I could have added it, but it's up to Mike to fit the code in. Just mentioned some options...
0

Author Comment

ID: 36502419
Hi

Maybe I shpuld have shared this with you before - could you indicate how to work you solutions into these statements: the TEM_CBK_PHN_NB and TEM_FAX_NB components are the telephone and fax numbers repectively

@ProperCase(PHP_ADR_LN1) + ",  " + @ProperCase(LOC_CD) +
@NewLine + TEM_CBK_PHN_NB +
@NewLine +  TEM_FAX_NB + "  " + "Fax"

Thank you for your help.  it looks like you all will get points on this one

Mike
0

LVL 46

Expert Comment

ID: 36502741
As I expected: formula :-)

Instructions?
You take the keyboard, you type the I, then the .... C'mon man, think and try by yourself first!

Hint --- add these lines at least once:

tel:= @Trim(@Split(TEM_CBK_PHN_NB; "-"));
telf:= "(" + tel[1] + ") " + tel[2] + " " + tel[3];

and use telf instead of TEM_CBK_PHN_NB
0

Author Comment

ID: 36502856
Sorry Seif

I am a healthcare professional and a novice programmer at best - I learn to program by reading books and doing it on the job.  This is basic stuff for you but it's Greek to me since I lack formal IT training

Thanks

Mike
0

Author Comment

ID: 36503011
Apparently @ SPLIT is not an available function in Notes 5.0

Should I use @ left or @middle to parse the data as an alternative?

Thank You

Mike
0

LVL 46

Accepted Solution

Sjef Bosman earned 300 total points
ID: 36503344
Oh shoot, my bad... :\$  And Notes R5, eh? The code will indeed be different then:

tel:= @Trim(@Explode(TEM_CBK_PHN_NB; "-"));
telf:= "(" + @Subset(@Subset(tel; 2);-1) + ") " + @Subset(@Subset(tel; 3);-1) + " " + @Subset(@Subset(tel; 4);-1);

0

Author Closing Comment

ID: 36522386
As always these experts are very helpful.
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question