Solved

About String

Posted on 2002-03-06
6
182 Views
Last Modified: 2010-05-02
I have one TextBox where i will put a person's name(e.g. Michael A. Surname). Then i have 3 Command Buttons and 3 TextBox. In the first TextBox, when I click the first CommandButton the FirstName(e.g. Michael) should be in the first TextBox. And in the second, the MiddleInitial, and in the third the Surname.

Should I use (Len(), InStr(),etc..) in doing that.
Show me the code if this posible.
0
Comment
Question by:codebreaker
6 Comments
 
LVL 49

Expert Comment

by:Ryan Chong
Comment Utility
Dim myArray() As String
MyName = "Michael A. Surname"
myArray = Split(myName," ")

For i = Lbound(myArray) To Ubound(myArray)
   Debug.Print myArray(i)
Next i
0
 
LVL 49

Expert Comment

by:Ryan Chong
Comment Utility
If this is needed:

Private Sub Command1_Click() 'First Name
    Text1.Text = myArray(0)
End Sub

Private Sub Command1_Click() 'Middle Name
    Text2.Text = myArray(1)
End Sub

Private Sub Command1_Click() 'Last Name
    Text3.Text = myArray(2)
End Sub
0
 

Accepted Solution

by:
GMorgan earned 50 total points
Comment Utility
Dim iLength As Integer
Dim iIndex As Integer
Dim strWholeName As String
Dim strFirstName As String
Dim strInitial As String
Dim strLastName As String
Dim strTest As String

' store whole name
strWholeName = txtWholeName.Text

' find the length of the string
iLength = Len(strWholeName)

iIndex = 1
' loop until we know the length of firstname
Do Until strTest = " "
    strTest = Mid(strWholeName, iIndex, 1)
   
    iIndex = iIndex + 1
Loop

' extracted first name

strFirstName = Mid(strWholeName, 1, iIndex - 2)

txtFName = strFirstName
     
 ' extract initial
strInitial = Mid(strWholeName, iIndex, 2)
txtMiddleInit = strInitial

' extract last name
strLastName = Mid(strWholeName, iIndex + 3, iLength - iIndex - 2)
txtLName = strLastName
0
Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

 
LVL 17

Expert Comment

by:smozgur
Comment Utility
for MiddleInitial you should better use this code line after setting myarray by Split function

myarray(1)=Left(myarray(1),1)


If you have no VB6 then you cannot use that great functions of VB like Split and Replace then you can use this code or some else.

Code needs 3 command1 buttons (control arrays) and 3 text1 textboxes (control arrays), Text2 textbox (entry textbox for full name) and then paste this code in form module.

Private Function GetVal(Index As Integer, fullname As String) As String
Dim i As Integer, j As Integer
fullname = Trim(fullname) & " "
  For i = 0 To Index
    fullname = LTrim(Right(fullname, Len(fullname) - j))
    j = InStr(1, fullname, " ")
  Next i
  If j = 0 Then Exit Function
  GetVal = IIf(Index = 1, Left(Left(fullname, j - 1), 1), Left(fullname, j - 1))
End Function


Private Sub Command1_Click(Index As Integer)
  Text1(Index).Text = GetVal(Index, Text2.Text)
End Sub

regards
suat
0
 
LVL 1

Expert Comment

by:eosu
Comment Utility
problem you are going to face will be people who put in Jnr or have 2 first names, which as far as I can see will not be handled by above...

What I would do is read to the first space in the string to get the firstname...
iFirstEnd = instr(1 strFullName, " ")
strFirstName = mid(strFullName, 1, iFirstEnd - 1)

Then read from the end of the string for the surname...
iSurStart = instrrev(strFullName, " ")
strSurname = mid(strFullName, iSurStart+1)

strMiddle = mid(strfullname, iFirstEnd+1, iSurStart-iFirstEnd)


you will probably have to fool around with the +1 and -1 above as it will probably be pulling back a space in some cases and dropping a char in others and I haven't compiled it.  But you should get the idea anyway...

eosu
0
 
LVL 5

Expert Comment

by:kcm76
Comment Utility
hi Codebreaker,
the following code will work for names of type u have specified in the question.(Michael A. Surname). This does not Advanced String functions like Instr or Split.
I have just used Mid and Len function, which i hope, do work for previous versions of visual basic too. I have called the Procedure in the Form load event, but it should have been called in lost_Focus of the userInput text box.

All the best
KCM
************************
Dim strName As String
Dim strArray(2) As String
Private Sub Command1_Click()
Text1.Text = strArray(0)
End Sub

Private Sub Command2_Click()
Text2.Text = strArray(1)
End Sub

Private Sub Command3_Click()
Text3.Text = strArray(2)
End Sub

Private Sub Form_Load()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = "Michael A. Surname"
SplitRecord
End Sub

Sub SplitRecord()
Dim strTemp As String, intCtr As Integer
intCtr = 0
strTemp = ""
For i = 1 To Len(Text4)
    If Mid(Text4.Text, i, 1) = " " Then
        strArray(intCtr) = strTemp
        strTemp = ""
        intCtr = intCtr + 1
        If intCtr > 1 Then
            strArray(intCtr) = Mid(Text4.Text, i + 1)
            Exit For
        End If
    Else
        strTemp = strTemp & Mid(Text4.Text, i, 1)
    End If
Next i
End Sub
0

Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

I’ve seen a number of people looking for examples of how to access web services from VB6.  I’ve been using a test harness I built in VB6 (using many resources I found online) that I use for small projects to work out how to communicate with web serv…
If you have ever used Microsoft Word then you know that it has a good spell checker and it may have occurred to you that the ability to check spelling might be a nice piece of functionality to add to certain applications of yours. Well the code that…
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
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…

743 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

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now