If Anweisung soll zu viel Text erkennen(in C#) Bitte hilfe!

... komplette Frage anzeigen

5 Antworten

Da gibt es viele unterschiedliche moeglichkeiten.... interesannt sind aber die unterschiedliche moeglichkeiten der suche:

z.b wenn jemenden James sucht koennte damit James Smith, oder Sahra James gemeint sein... daher keonnte eine beid-seitige suche sinnvoll sein...

nicht deszu trotz... das war nicht die frage... um das was du erreichen moechtest muss du keine split verwenden.... das geht mit linq sehr gut und einfach so:

var names = (from name in db.Names let fullName = name.FirstName + " " + name.LastName where fullName.Contains(SearchString) select name)toList();

mit ToUpper() oder ToLower() kannst du es naturlich noch etwas "fundiger" werden lassen.... das bleibt dir ueberlassen....

Antwort bewerten Vielen Dank für Deine Bewertung

mach doch einfach zwei felder für vor- und nachnamen. du kannst bei der eingabe nur nach syntaktischen fehlern filtern, aber nachdem es vornamen aus zwei wörtern gibt, kann man kein filterkriterium definieren. das bedeutet wenn da jetzt ein feld mit der beschriftung vorname steht und darunter eins mit nachname und der benutzer gibt trotzdem den ganzen namen ein, dann ist das sein eigenes problem. die suche ist halt dann nicht erfolgreich. aber das denken kann man dem anwender (noch) nicht abnehmen ;)

Antwort bewerten Vielen Dank für Deine Bewertung

Du kannst den Text auch splitten mit "text.Split(' ');" Das gibt dir dann ein Array zurück in dem nach Leerzeichen gesplittet wurde als:

"Hanz Müller" = "Hanz" "Müller"

oder

"Hanz Peter Müller" = "Hanz" "Peter" "Müller"

'array[0]' ist logischerweise der Vorname (bzw. das erste Objekt im Array) und 'array[array.Lenght - 1]' wär dann der Nachname (letzte Objekt). 'array.Lenght == 0' heißt natürlich das kein Text eingegeben wurde, wenn 'array.Lenght == 1' true ergibt, dann ist der Vorname gleich der Nachname (bzw. es wurde nur ein Name eingegeben). Split() lässt so viele Parameter wie möglich zu, du kannst den Text also nach: ',' '_' '-' ' ' usw alles Splitten.

Ansonsten empfehl ich die einfach durch IndexOf(' ') die erste Leertaste zu suchen, also wenn der Index != -1 ist, kannst du an der Position Splitten bzw. mit Substring(...) arbeiten.

Antwort bewerten Vielen Dank für Deine Bewertung

Da Vor- und Nachname normaler Weise mit einem Leerzeichen getrennt werden, würde ich den String einfach durchgehen und gucken, ob nen Leerzeichen drin ist oder nicht. Könntest sie dann auch gleich trennen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von timithy
26.10.2012, 13:05

Danke hat sofort funktioniert :)

0

Ich würde statt einem Leerzeichen ein Komma zur Trennung verwenden, da es ja auch namen gibt mit Leerzeichen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von LordvanZed1990
26.10.2012, 13:07

for(i=0;i<Vornamenlänge;i+=1)

{

If Komma //Code zum Erkennen des Kommas.

{

//Danach Code für Vor- und Nachnamensuche.

}

else

{

//Code zum Vornamen suchen.

}

}

0

Was möchtest Du wissen?