tiweb
Goto Top

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!

Content-Key: 75009

Url: https://administrator.de/contentid/75009

Printed on: April 24, 2024 at 09:04 o'clock

Member: bastla
bastla Dec 02, 2007 at 18:23:07 (UTC)
Goto Top
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:
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."  
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]
Member: tiweb
tiweb Dec 02, 2007 at 18:37:25 (UTC)
Goto Top
Hallo bastla,
Dein Vorschlag sieht schon recht gut aus, das bringt mich schon weiter.
Danke für die Antwort!

Der/Die else-Zweig(e) sollte(n) so aussehen:

1 else-Zweig
vorher. Mustermann, Elke
nachher: Elke Mustermann

2 else-Zweig
vorher. Elke Mustermann
nachher: Elke Mustermann
In diesem else-Zweig gibt es also nichts zu tun.

Gruß,
tiweb
Member: bastla
bastla Dec 02, 2007 at 19:19:33 (UTC)
Goto Top
Hallo tiweb!

Ich habe die beiden "Else"-Zweige gleich oben ergänzt ...

Grüße
bastla
Member: tiweb
tiweb Dec 03, 2007 at 05:39:57 (UTC)
Goto Top
Hallo bastla,
alles SUPER funktionierte sofort.
Ich danke Dir für den VBS Code!

Gruß,
tiweb
Member: bastla
bastla Dec 03, 2007 at 06:02:11 (UTC)
Goto Top
Hallo tiweb!

Freut mich, wenn's passt face-smile - das kannst Du übrigens How can I mark a post as solved? noch deutlicher machen ...

Grüße
bastla
Member: Biber
Biber Dec 03, 2007 at 06:35:30 (UTC)
Goto Top
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]