Benutzer mit den meisten Antworten
String Bearbeitung

Frage
-
Hallo, ich möchte alle Namen aus einer Liste auslesen lassen.
Die Namen wurden so eingetragen: Vorname1 Vorname2 Nachname1 Nachname2
Mit $_["User"].Split(" ") kann ich die Namen trennen. Ich möchte diese Ergebnis erreichen Nachname1 Nachname2, Vorname1 Vorname2
Wie würden die Funktionen dazu heißen?
Viele Grüße
Antworten
-
$a = 'Kevin Pascal Meyer Müller' $Vorname1 = $a.Split(' ')[0] $Vorname2 = $a.Split(' ')[1] $Nachname1 = $a.Split(' ')[2] $Nachname2 = $a.Split(' ')[3] "$Nachname1 $Nachname2, $Vorname1 $Vorname2"
Allerdings wird es sofort Probleme geben, wenn ein Eintrag nur einen Vornamen oder Nachnamen hat. Am besten wäre es, wenn deine Quelldatei so aussehen würde:
"Vorname1","Vorname2","Nachname1","Nachname2" "Bernd","Michael","Meyer","" "Torben","","Petersen",""
- Bearbeitet psott Freitag, 3. März 2017 13:08
- Als Antwort markiert Denniver ReiningMVP, Moderator Freitag, 10. März 2017 13:49
-
Hi,
das würde auch gehen:
$NamenListe = 'Kevin Pascal Meyer Müller' $Vorname1, $Vorname2, $Nachname1, $Nachname2 = $NamenListe.Split(' ') "$Nachname1 $Nachname2, $Vorname1 $Vorname2"
Beste Gruesse
brima
- Als Antwort markiert Denniver ReiningMVP, Moderator Freitag, 10. März 2017 13:49
-
So gut wie die bisherigen Tipps sind, kann das aber eigentlich alles nur funktionieren, wenn bestimmte Bedingungen erfüllt sind, wie:
- das zu jedem Nachnamen auch ein Vorname existiert
- das zu jedem Nachnamen nur genau ein Vorname existiert
- das kein Vornamen- oder Nachnamen-Eintrag ein Leerzeichen enthält ("Karl Heinz")
- das keine Titel wie "Dr. " eingetragen sind
Außerdem nehme ich ja mal an, das du nicht nur 4 Namen sondern hunderte in der Liste hast. :)
Wenn das alles so ist, dann kannst du Einträge mit split(" ") trennen, das entstandene Array bei der Hälfte teilen (bedenke hier das ein Array bei [0] beginnt, nicht bei [1]) und in umgekehrter Reihenfolge wieder zusammenfügen.
$Alt = 'Horst Jens Dieter Peter Hans Michael Müller Berg Meier Schmitt Hansen Peterson' $Alt = $Alt.Split(" ") $Neu = ($Alt[($Alt.Count/2)..($Alt.count)] + $Alt[0..(($Alt.Count/2) -1)]) -join " "
Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Kostenloser Powershell Code Manager v5: Link
(u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.- Bearbeitet Denniver ReiningMVP, Moderator Montag, 6. März 2017 13:38
- Als Antwort markiert Denniver ReiningMVP, Moderator Freitag, 10. März 2017 13:49
Alle Antworten
-
$a = 'Kevin Pascal Meyer Müller' $Vorname1 = $a.Split(' ')[0] $Vorname2 = $a.Split(' ')[1] $Nachname1 = $a.Split(' ')[2] $Nachname2 = $a.Split(' ')[3] "$Nachname1 $Nachname2, $Vorname1 $Vorname2"
Allerdings wird es sofort Probleme geben, wenn ein Eintrag nur einen Vornamen oder Nachnamen hat. Am besten wäre es, wenn deine Quelldatei so aussehen würde:
"Vorname1","Vorname2","Nachname1","Nachname2" "Bernd","Michael","Meyer","" "Torben","","Petersen",""
- Bearbeitet psott Freitag, 3. März 2017 13:08
- Als Antwort markiert Denniver ReiningMVP, Moderator Freitag, 10. März 2017 13:49
-
Hi,
das würde auch gehen:
$NamenListe = 'Kevin Pascal Meyer Müller' $Vorname1, $Vorname2, $Nachname1, $Nachname2 = $NamenListe.Split(' ') "$Nachname1 $Nachname2, $Vorname1 $Vorname2"
Beste Gruesse
brima
- Als Antwort markiert Denniver ReiningMVP, Moderator Freitag, 10. März 2017 13:49
-
So gut wie die bisherigen Tipps sind, kann das aber eigentlich alles nur funktionieren, wenn bestimmte Bedingungen erfüllt sind, wie:
- das zu jedem Nachnamen auch ein Vorname existiert
- das zu jedem Nachnamen nur genau ein Vorname existiert
- das kein Vornamen- oder Nachnamen-Eintrag ein Leerzeichen enthält ("Karl Heinz")
- das keine Titel wie "Dr. " eingetragen sind
Außerdem nehme ich ja mal an, das du nicht nur 4 Namen sondern hunderte in der Liste hast. :)
Wenn das alles so ist, dann kannst du Einträge mit split(" ") trennen, das entstandene Array bei der Hälfte teilen (bedenke hier das ein Array bei [0] beginnt, nicht bei [1]) und in umgekehrter Reihenfolge wieder zusammenfügen.
$Alt = 'Horst Jens Dieter Peter Hans Michael Müller Berg Meier Schmitt Hansen Peterson' $Alt = $Alt.Split(" ") $Neu = ($Alt[($Alt.Count/2)..($Alt.count)] + $Alt[0..(($Alt.Count/2) -1)]) -join " "
Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Kostenloser Powershell Code Manager v5: Link
(u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.- Bearbeitet Denniver ReiningMVP, Moderator Montag, 6. März 2017 13:38
- Als Antwort markiert Denniver ReiningMVP, Moderator Freitag, 10. März 2017 13:49