?
Solved

URGENT: String Conversion

Posted on 2006-12-01
10
Medium Priority
?
243 Views
Last Modified: 2010-04-30
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


0
Comment
Question by:dwe0608
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
10 Comments
 
LVL 67

Accepted Solution

by:
sirbounty earned 2000 total points
ID: 18058425
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
 
LVL 11

Expert Comment

by:bingie
ID: 18058430
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
 
LVL 1

Author Comment

by:dwe0608
ID: 18058489
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
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 67

Expert Comment

by:sirbounty
ID: 18058503
My solution should work in that case as well...
0
 
LVL 1

Author Comment

by:dwe0608
ID: 18058521
Thasnks for the prompt help guys ... muchly appreciated ....
0
 
LVL 29

Expert Comment

by:nffvrxqgrcfqvvc
ID: 18059662
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
 
LVL 1

Author Comment

by:dwe0608
ID: 18061324
Always willing to see examples egl1044 ....

MTIA

Darrin
0
 
LVL 1

Author Comment

by:dwe0608
ID: 18062922
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
 
LVL 67

Expert Comment

by:sirbounty
ID: 18064043
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

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

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

Enums (shorthand for ‘enumerations’) are not often used by programmers but they can be quite valuable when they are.  What are they? An Enum is just a type of variable like a string or an Integer, but in this case one that you create that contains…
Background What I'm presenting in this article is the result of 2 conditions in my work area: We have a SQL Server production environment but no development or test environment; andWe have an MS Access front end using tables in SQL Server but we a…
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Suggested Courses

765 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question