Wie kann ich mit VBS eine Zeichenkette in einer Variablen vertauschen?
Wie kann ich mit VBS eine Zeichenkette in einer Variablen vertauschen?
Beispiel:
vorher: Mustermann, Elke & Die Mustermänner
nachher: Elke Mustermann & Die Mustermänner
Hat jemand eine Lösung dafür?
Danke!
Beispiel:
vorher: Mustermann, Elke & Die Mustermänner
nachher: Elke Mustermann & Die Mustermänner
Hat jemand eine Lösung dafür?
Danke!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 75009
Url: https://administrator.de/contentid/75009
Ausgedruckt am: 22.11.2024 um 18:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo tiweb!
Falls der Algorithmus lautet: "Nimm den Teil nach der ersten Kombination 'Komma + Leerzeichen' bis zum nächsten Leerzeichen (inklusive), setze diesen Teil an den Anfang und entferne das Komma", ginge es etwa so:
Die beschriebene Vorgangsweise führt zwar von Deinem "Vorher" zu Deinem "Nachher", basiert aber nur auf einer Annahme meinerseits (und ist aus diesem Grund auch nur als Entwurf zu verstehen).
Vielleicht beschreibst Du die Kriterien für die Zerlegung (ob zB immer ein "&" den Beginn des nächsten Teiles kennzeichnet) und die Vorgangsweise für die noch offen gebliebenen "Else"-Zweige etwas näher ...
Grüße
bastla
[Edit] "Else"-Zweige auf Basis von tiweb's untenstehenden Vorgaben ergänzt. [/Edit]
Falls der Algorithmus lautet: "Nimm den Teil nach der ersten Kombination 'Komma + Leerzeichen' bis zum nächsten Leerzeichen (inklusive), setze diesen Teil an den Anfang und entferne das Komma", ginge es etwa so:
Vorher = "Mustermann, Elke & Die Mustermänner"
Delim1 = ", "
ToRemove = ","
Delim2 = " "
LDelim1 = Len(Delim1)
LDelim2 = Len(Delim2)
KPos = InStr(Vorher, Delim1)
If KPos > 0 Then
Start = KPos + LDelim1
LPos = InStr(Start, Vorher, Delim2)
If LPos > 0 Then
Ende = LPos + LDelim2
Nachher = Mid(Vorher, Start, Ende - Start) & Replace(Left(Vorher, Start - 1), ToRemove, "") & Mid(Vorher, Ende)
Else
'kein nächstes Leerzeichen gefunden, daher ...
Nachher = Mid(Vorher, Start) & Delim2 & Replace(Left(Vorher, Start - 1), ToRemove, "") End If
Else
'kein "Komma + Leerzeichen" enthalten
Nachher = Vorher
End If
If Nachher <> "" Then WScript.Echo Nachher Else WScript.Echo "Hat leider nicht geklappt."
Vielleicht beschreibst Du die Kriterien für die Zerlegung (ob zB immer ein "&" den Beginn des nächsten Teiles kennzeichnet) und die Vorgangsweise für die noch offen gebliebenen "Else"-Zweige etwas näher ...
Grüße
bastla
[Edit] "Else"-Zweige auf Basis von tiweb's untenstehenden Vorgaben ergänzt. [/Edit]
Hallo tiweb!
Freut mich, wenn's passt - das kannst Du übrigens Wie kann ich einen Beitrag als gelöst markieren? noch deutlicher machen ...
Grüße
bastla
Freut mich, wenn's passt - das kannst Du übrigens Wie kann ich einen Beitrag als gelöst markieren? noch deutlicher machen ...
Grüße
bastla
Moin tiweb,
danke für die nette Rückmeldung an bastla.
Bitte das nächste Mal zusätzlich - als i-Tüpfelchen sozusagen - noch den grünen "Gelöst"-Haken setzen.
Danke und schönen Montagmorgen
Biber
[Edit] @bastla - Sorry, hatte Dich wieder mal übersehen..
@tiweb - Okay, okay, von zwei Seiten solltest Du es auch nicht aufs Brot geschmiert bekommen... so schlimm war es nun auch nicht...[/Edit]
danke für die nette Rückmeldung an bastla.
Bitte das nächste Mal zusätzlich - als i-Tüpfelchen sozusagen - noch den grünen "Gelöst"-Haken setzen.
Danke und schönen Montagmorgen
Biber
[Edit] @bastla - Sorry, hatte Dich wieder mal übersehen..
@tiweb - Okay, okay, von zwei Seiten solltest Du es auch nicht aufs Brot geschmiert bekommen... so schlimm war es nun auch nicht...[/Edit]