URGENT: String Conversion

Hi Guys

(1) I have a string as follows:

ThisIsAnExampleString

I am looking for a function to convert that string to:

This Is An Example String

(2) I also have a string as follows:

This_Is_An_Example_String

I would like to convert that string to the same as in my first question ... I can do this using the Replace Function in VB6; but I would like to use one function to do both conversions ....

Hoping my question is clear

MTIA


Darrin


LVL 1
dwe0608Asked:
Who is Participating?
 
sirbountyConnect With a Mentor Commented:
Passing either instance of strT returns the string you desire:

strT = "ThisIsAnExampleString"
strT = "This_Is_An_Example_String"
MsgBox SplitIt(strT)
End Sub

Private Function SplitIt(strConv As String)
On Error Resume Next
    strNew = Left(strConv, 1)
    For i = 1 To Len(strConv)
      Select Case Asc(Mid(strConv, i + 1, 1))
        Case 65 To 91
          strNew = strNew & " " & Mid(strConv, i + 1, 1)
        Case 97 To 122
          strNew = strNew & Mid(strConv, i + 1, 1)
      End Select
    Next i
    SplitIt = strNew
End Function
0
 
bingieCommented:
Private Sub Form_Load()
    MsgBox convertString("ThisIsAnExampleString")
    MsgBox convertString("This_Is_An_Example_String")
End Sub

Private Function convertString(str As String) As String

    If InStr(str, "_") > 0 Then
        str = Replace(str, "_", " ")
        Exit Sub
    End If
   
    'Since capital letters are ascii 65 to 90,
    'we can check for that
    Dim cnt As Integer
    For cnt = 2 To Len(str) 'Start at the second letter
        If (Asc(Mid(str, cnt, 1)) >= 65 And Asc(Mid(str, cnt, 1)) <= 90) Then
            'The letter is a capital
            str = Mid(str, 1, cnt - 1) & " " & Mid(str, cnt, 1) & Mid(str, cnt + 1)
            cnt = cnt + 2
        End If
    Next
       
    convertString = str

End Function
0
 
dwe0608Author Commented:
Guy, both answers work ... brilliant, now, how could we resolve the string if it were

This_IsAnExample_String

ie its combination of both questions ...

MTIA

Darrin

0
Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
sirbountyCommented:
My solution should work in that case as well...
0
 
dwe0608Author Commented:
Thasnks for the prompt help guys ... muchly appreciated ....
0
 
nffvrxqgrcfqvvcCommented:
You could use API to check the bit of the character, if your format of the start of a new word is a capital letter than it would work perfectly. Let me know if you would like to see an example using this method.
0
 
dwe0608Author Commented:
Always willing to see examples egl1044 ....

MTIA

Darrin
0
 
dwe0608Author Commented:
Sirbounty

If I have a string, AnITGuru .... it would under the current rules of the function be broken down to

An I T Guru

is it possible to change the coding so if we have two or more capitals in a row it only seperates the last one ?

So if we had

AnEXTRAA as the string - it would come out

An EXTRA A

And perhaps if string were "IAmEmployedByI.T.S.A" - it sould say

I Am Employed By I.T.S.A

I am willing to post another question - but did know how to follow on from here ... so if you have the answer, I will post a question for you for 500 points ...

MTIA

Darrin
0
 
sirbountyCommented:
The first request wouldn't be too terrible complicated, but the others add a bit more to the logic.
You can open a new question, and in the body of the question, paste the link to this question, stating it's a followup.
I'll see if I can come up with something to do what you ask...
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.