- Beiträge: 92
String von rechts ab erstem Leerzeichen von links
- Marko
- Autor
- Offline
- Benutzer
Weniger
Mehr
10 Jahre 8 Monate her - 10 Jahre 8 Monate her #1640
von Marko
String von rechts ab erstem Leerzeichen von links wurde erstellt von Marko
Hallo Forum
Ich habe eine Spalte in einer Tabelle die folgenden Namensvariationen beinhaltet und möchte den Nachnamen separieren.
Max Mustermann
Max Mustermann Schmidt
Maria-Magdalena Schmidt Meier
Gewünschtes Ergebnis:
Mustermann
Mustermann Schmidt
Schmidt Meier
Besonderheit: Der Nachname kann aus mehreren Wörtern bestehen die auch durch ein Leerzeichen getrennt sind. Komme mit Split und Subtring leider nicht zum Erfolg.
Habt ihr hierzu einen Lösungsansatz?
Ich habe eine Spalte in einer Tabelle die folgenden Namensvariationen beinhaltet und möchte den Nachnamen separieren.
Max Mustermann
Max Mustermann Schmidt
Maria-Magdalena Schmidt Meier
Gewünschtes Ergebnis:
Mustermann
Mustermann Schmidt
Schmidt Meier
Besonderheit: Der Nachname kann aus mehreren Wörtern bestehen die auch durch ein Leerzeichen getrennt sind. Komme mit Split und Subtring leider nicht zum Erfolg.
Habt ihr hierzu einen Lösungsansatz?
Letzte Änderung: 10 Jahre 8 Monate her von Marko.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Heinz-Bernd Monschau
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 63
10 Jahre 8 Monate her - 10 Jahre 8 Monate her #1641
von Heinz-Bernd Monschau
Heinz-Bernd Monschau antwortete auf String von rechts ab erstem Leerzeichen von links
Hallo,
wahrscheinlichh geht es einfacher, ich würde das in Unkenntnis der richtigen Lösung aber wieder mit einem .Net-Heater machen.
Sprache:VB.net
Eingangsparameter: Die Namensspalte
Public Function DoWork() As Object
'Den vollen Namen in Variable einlesen
dim strVollerName as string=invalues(0).getvalue()
'Den Namen anhand des Leerzeichens in eine Arrayvariable aufspliiten
dim strSplittet as string()=strVollerName.Split(New Char() {" "c})
'Anzahl der Namensteile zählen
dim intAnzahl as integer=strsplittet.length
dim strName as string
dim x as integer
select case intanzahl
'Wenn der Namen zwei Teile lang ist, dann ist der zweite Teil der Nachname
case 2
strname=strSplittet(1)
'Wenn der Name größer als zwei Teile ist, damn ist der Nachname die 'Verkettung aller Teile im array ab Position 2
case >2
strname= strsplittet(1)
for x=2 to intAnzahl-1
strname= strname & " " & strsplittet(x)
next
end select
dowork=strname
end function
wahrscheinlichh geht es einfacher, ich würde das in Unkenntnis der richtigen Lösung aber wieder mit einem .Net-Heater machen.
Sprache:VB.net
Eingangsparameter: Die Namensspalte
Public Function DoWork() As Object
'Den vollen Namen in Variable einlesen
dim strVollerName as string=invalues(0).getvalue()
'Den Namen anhand des Leerzeichens in eine Arrayvariable aufspliiten
dim strSplittet as string()=strVollerName.Split(New Char() {" "c})
'Anzahl der Namensteile zählen
dim intAnzahl as integer=strsplittet.length
dim strName as string
dim x as integer
select case intanzahl
'Wenn der Namen zwei Teile lang ist, dann ist der zweite Teil der Nachname
case 2
strname=strSplittet(1)
'Wenn der Name größer als zwei Teile ist, damn ist der Nachname die 'Verkettung aller Teile im array ab Position 2
case >2
strname= strsplittet(1)
for x=2 to intAnzahl-1
strname= strname & " " & strsplittet(x)
next
end select
dowork=strname
end function
Letzte Änderung: 10 Jahre 8 Monate her von Heinz-Bernd Monschau.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
10 Jahre 8 Monate her - 10 Jahre 8 Monate her #1642
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf String von rechts ab erstem Leerzeichen von links
Hallo,
das geht z.Zt. nur vernünftig mit dem .NET Script Heater . Allerdings ist Vornamen/Nachnamen Erkennung eine Wissenschaft für sich, eine 100%ige Lösung wird es nicht geben.
Ich habe jetzt mal ein Script erstellt das nach der Anforderung alle Zeichen ab dem ersten Leerzeichen zurückliefert.
So werden aber z.B. Namen wie Klaus Maria Mustermann Schmitt nicht richtig erkannt! Das ist ebenfalls bei der Lösung von Herrn Monschau der Fall.
C# Skript zum extrahieren von Vornamen/Nachnamen, Beispiel siehe Anhang
das geht z.Zt. nur vernünftig mit dem .NET Script Heater . Allerdings ist Vornamen/Nachnamen Erkennung eine Wissenschaft für sich, eine 100%ige Lösung wird es nicht geben.
Ich habe jetzt mal ein Script erstellt das nach der Anforderung alle Zeichen ab dem ersten Leerzeichen zurückliefert.
So werden aber z.B. Namen wie Klaus Maria Mustermann Schmitt nicht richtig erkannt! Das ist ebenfalls bei der Lösung von Herrn Monschau der Fall.
C# Skript zum extrahieren von Vornamen/Nachnamen, Beispiel siehe Anhang
Code:
public object DoWork()
{
if (InValues.Length != 1)
throw new Exception("ein Eingangsparameter erwartet");
// 1. Eingangsparameter holen
string IN = (string)InValues[0].GetString();
// prüfen ob ein Leerzeichen vorkommt
int pos = IN.IndexOf(" ");
if (pos >= 0)
{
// Wenn ja dann den Rest zurückliefern
return IN.Substring(pos + 1);
}
// keine Leerzeichen vorhanden, Eingangsparameter ohne Verarbeitung zurückliefern
return IN;
}
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Anhänge:
Letzte Änderung: 10 Jahre 8 Monate her von FlowHeater-Team.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Marko
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 92
10 Jahre 8 Monate her #1643
von Marko
Marko antwortete auf String von rechts ab erstem Leerzeichen von links
Vielen Dank Herr Monschau und Herr Stark. Ich finde den 2.ten Lösungsansatz besser und falls es doch einen Doppel-Vornamen mit Leerzeichen :blink: gibt, kann man sich mit dem Replace Heater behelfen.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Michael Schaffert
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 22
3 Jahre 5 Monate her #4337
von Michael Schaffert
Michael Schaffert antwortete auf String von rechts ab erstem Leerzeichen von links
Hallo!
Ich habe da noch eine ergänzende Frage zum Thema.
Wie bekommt man es dann mit diesem Skript hin den "String von rechts ab dem 2. Leerzeichen von links" zurück zu geben?
Viele Grüße
Michael
Ich habe da noch eine ergänzende Frage zum Thema.
Wie bekommt man es dann mit diesem Skript hin den "String von rechts ab dem 2. Leerzeichen von links" zurück zu geben?
Viele Grüße
Michael
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
3 Jahre 5 Monate her #4338
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf String von rechts ab erstem Leerzeichen von links
Hallo Herr Schaffert,
dann muss anschließend noch die Position des zweiten Leerzeichens gesucht werden, hier das Skript.
dann muss anschließend noch die Position des zweiten Leerzeichens gesucht werden, hier das Skript.
Code:
public object DoWork()
{
if (InValues.Length != 1)
throw new Exception("1 Eingangsparameter erwartet!");
// 1. Eingangsparameter holen
string sIN = (string)InValues[0].GetString();
// Position des ersten Leerzeichens suchen
int pos1 = sIN.IndexOf(" ");
if (pos1 >= 0)
{
// Position des zweiten Leerzeichens suchen
int pos2 = sIN.IndexOf(" ", pos1 + 1);
if (pos2 > pos1)
{
// restliche Zeichen von rechts zurückliefern
return sIN.Substring(pos2 + 1);
}
}
// keine zwei Leerzeichen vorhanden, Eingangsparameter ohne Verarbeitung zurückliefern
return sIN;
}
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Michael Schaffert
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 22
3 Jahre 5 Monate her #4339
von Michael Schaffert
Michael Schaffert antwortete auf String von rechts ab erstem Leerzeichen von links
Hallo Herr Stark,
vielen Dank für die schnelle Antwort.
Perfekt. So funktioniert's. Wieder etwas gelernt
Viele Grüße
Michael
vielen Dank für die schnelle Antwort.
Perfekt. So funktioniert's. Wieder etwas gelernt
Viele Grüße
Michael
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.294 Sekunden