/ / ottenere una sottostringa di una stringa in vb.net - vb.net, vb.net-2010

ottenere una sottostringa di una stringa in vb.net - vb.net, vb.net-2010

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 № 1

Dovrebbe 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()