Ho questo tipo di stringa
Cognome, NomeNome Nome
Mi piacerebbe che fossero messi in 3 diverse caselle di testo
Nome di battesimo Secondo nome Cognome
ma non riesco a farlo bene,
Ho questo codice per il mio progetto:
Name = Me.dtgEmplist.CurrentRow.Cells(1).Value
fname = Name.Substring(Name.IndexOf(" ")).Trim
mname = fname.Substring(fname.IndexOf(" ")).Trim
lname = Name.Substring(0, Name.IndexOf(",")).Trim
Mi sembra di avere il cognome e il middlename correttamente, ma il primo nome è molto complicato, riesco solo a ottenere questo tipo di output
FirstName MiddleName Secondo nome Cognome
qualcuno potrebbe darmi una mano? Ci sto provando da così tanto tempo.
EDIT: sono presi da un datagridview. E la vista del datagridview è popolata da una stored procedure
risposte:
0 per risposta № 1Dovrebbe essere facile se usi il metodo Split come gli altri hanno detto:
Name = Me.dtgEmplist.CurrentRow.Cells(1).Value
Dim FirstSplit as String()
FirstSplit = Name.Split(",")
fname = FirstSplit(0).Trim()
Dim SecondSplit as String() = (FirstSplit(1).Trim()).Split()
mname = SecondSplit(0).Trim
lname = SecondSplit(1).Trim
Prima di tutto dividi per il carattere "," e poi ti dividi per lo spazio. Forse dovresti controllare anche la dimensione dell'array.
0 per risposta № 2
potrebbe essere più semplice con string.Split (): https://msdn.microsoft.com/en-us/library/tabh47cf(v=vs.110).aspx
puoi prima dividere l'intera stringa sul coma:
string[] splitted
string[] splitted2
splitted = Name.Split(New Char() {","c})
fName = splitted(0).Trim
splitted2 = splitted(1).Split(New Char() {" "c}
mname = splitted2(0).Trim()
lname = splitted2(1).Trim()