Der Daten Import / Export Spezialist
Schauen Sie sich auch die verfügbaren allgemeinen Beispiele an evtl. kann Ihre Frage hiermit schon beantwortet werden: Hello World 1 / 2 / 3 , Zahlen in Zeichenketten formatieren , Einfache Wenn-Dann-Sonst Bedingung , Komplexe If-Then-ElseIf ... Bedingung , Daten filtern und gruppieren , Daten gruppieren und Werte über die Gruppierung summieren

String von rechts ab erstem Leerzeichen von links

Mehr
8 Jahre 10 Monate her - 8 Jahre 10 Monate her #1640 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?
Letzte Änderung: 8 Jahre 10 Monate her von Marko.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Heinz-Bernd Monschau
  • Offline
  • Senior Mitglied
  • Senior Mitglied
Mehr
8 Jahre 10 Monate her - 8 Jahre 10 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
Letzte Änderung: 8 Jahre 10 Monate her von Heinz-Bernd Monschau.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
8 Jahre 10 Monate her - 8 Jahre 10 Monate her #1642 von FlowHeater-Team
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
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; }

Dateianhang:

Dateiname: string-ver...ript.zip
Dateigröße:2 KB

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: 8 Jahre 10 Monate her von FlowHeater-Team.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
8 Jahre 10 Monate her #1643 von Marko
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
  • Junior Mitglied
  • Junior Mitglied
Mehr
1 Jahr 8 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

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Jahr 8 Monate her #4338 von FlowHeater-Team
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.
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
  • Junior Mitglied
  • Junior Mitglied
Mehr
1 Jahr 8 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

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ladezeit der Seite: 0.314 Sekunden

andere Sprachen

en

FlowHeater Home

de en

Impressum/Kontakt

Datenschutz

Copyright © 2009-2023 by FlowHeater GmbH.
Alle Rechte vorbehalten.

Follow us on

twitter  facebook

YouTube

 de en