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-ID: 75009

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

Ausgedruckt am: 22.11.2024 um 18:11 Uhr

bastla
bastla 02.12.2007 um 19:23:07 Uhr
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]
tiweb
tiweb 02.12.2007 um 19:37:25 Uhr
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
bastla
bastla 02.12.2007 um 20:19:33 Uhr
Goto Top
Hallo tiweb!

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

Grüße
bastla
tiweb
tiweb 03.12.2007 um 06:39:57 Uhr
Goto Top
Hallo bastla,
alles SUPER funktionierte sofort.
Ich danke Dir für den VBS Code!

Gruß,
tiweb
bastla
bastla 03.12.2007 um 07:02:11 Uhr
Goto Top
Hallo tiweb!

Freut mich, wenn's passt face-smile - das kannst Du übrigens Wie kann ich einen Beitrag als gelöst markieren? noch deutlicher machen ...

Grüße
bastla
Biber
Biber 03.12.2007 um 07:35:30 Uhr
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]