VBS Replace

VBS Replace
VBS Replace

VBS Replace

Du möchtest mit der VBS Replace Funktion Teile von Zeichenfolgen ersetzen und benötigst es z. B. für Platzhalter aus einem EmailTemplate?

Starte jetzt mit diesem Post durch und lerne wie man unter anderem dazu die VBS Replace Funktion verwenden kann.

Ggf. sind auch noch andere Beiträge von Interesse für Dich: VBScript If-Else, InStr, MsgBox.

Unverzichtbar

Falls Du nicht schon durch einen konkreten Grund selbst auf die Funktion gestoßen bist, bist Du bestimmt durch andere Suchvoränge zum Replace-Befehl gekommen.

Eventuell bist Du während deiner Recherche über Suchbegriffe, wie das Ersetzen von Platzhaltern, auf die VBS Replace Funktion gestoßen.

Mit großer Wahrscheinlichkeit hast Du auch schon Emails bekommen, wo Platzhalter nicht korrekt verarbeitet wurden.

Die Emails waren dann vermutlich mit kryptische Zeichen wie Diese hier versehen: „Hallo lieber {%firstName%}..“.

Allgemeine Erklärung

So kann z. B. eine dieser Emails aussehen, Welche man bei der erfolgreichen Registrierung auf einer Seite durch das System geschickt bekommt:

<!DOCTYPE html>
<html lang="de">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>{% SUBJECT %}</title>
</head>
<body>
  <div class="content">
    <h1>Thanks for joining {% PRODUCT_NAME %}</h1>
    <h2>Your right way of ...</h2>
    <p>
      Thanks for joining {% SALUTATION %} {% LAST_NAME %},
      click here to start {% APP_LINK %}
    </p>
  </div>
</body>
</html>

Dabei stellen die durch die „{%“, bzw. „%}“ eingeschlossenen Wörter wie „SUBJECT“ so etwas wie Variablen dar.

Final – also nach der Verarbeitung könnte der Text, bzw. der HTML-Code dann wie folgt aussehen:

<!DOCTYPE html>
<html lang="de">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Your registration</title>
</head>
<body>
  <div class="content">
    <h1>Thanks for joining RobbelRoot.de</h1>
    <h2>Your right way of ...</h2>
    <p>
      Thanks for joining Mr. Skibbe,
      click here to start https://robbelroot.de
    </p>
  </div>
</body>
</html>

Dort sehen wir dann die eigentlichen Daten, Welche sich hinter den Platzhaltern versteckt haben.

Vielleicht wird nun ein wenig verständlicher, warum, bzw. wann solche Platzhalter übrig bleiben.

Neben Email-Templates werden ähnliche Dinge auch in vielen Bekannten „Sprachenwie z. B. VueJS verwendet.

Dies macht man z. B., damit der Parser der Sprache anschließend weiß, was er – vor allem nach eventueller Arbeit – wo hin setzen muss.

Im Endeffekt sieht dies fast gleich zu oben aus, mit dem einen Unterschied, dass die verarbeitenden Werkzeuge damit anders umgehen.

Hier kannst Du so ein kleines Vue Code-Schnipselchen sehen:

          <div class="col-3">
            <div class="column">
              <div class="text-subtitle2 text-center">
                {{ $t("statistics.yearlyGoalSubtitle") }}
              </div>
              <div class="text-subtitle1 text-center">
                {{ yearlyProfit.toFixed(2) + " / " + yearlyGoal }}
              </div>
            </div>
          </div>

In dem Vue-Beispiel passiert allerdings wie schon erwähnt ein wenig mehr, als die bloße Ersetzung von „A“ durch „B“.

Neben dem Funktions-Aufruf findet hier auch noch die Verkettung eines Strings, also einer Zeichenkette statt.

Ich denke allerdings, dass dies zum aktuellen Zeitpunkt für die Erklärung ausreicht und den ein oder anderen sonst verwirren könnte.

VBS Replace Funktion

Ehe wir mit fiktiven Beispielen starten, schauen wir uns die Details der Funktion selbst an:

Parameter

string

Dieser Parameter gibt den String an, worin gesucht werden soll.

find

Hiermit geben wir den String an, nach Welchem wir letztendlich suchen.

replacewith

Dieser String bestimmt, wodurch der gefundene String ersetzt werden soll.

start [optional]

Definiert die Position ab wo das Ersetzen beginnt.

Achtung: Entfernt alle vorherigen Zeichenfolgen.

count [optional]

Standardmäßig auf -1 werden alle Vorkommnisse ersetzt, allerdings kann man durch diesen Parameter auch eine Art Begrenzungsmöglichkeit setzen.

compare [optional]

Konfiguriert die Vergleichs-Methode, wo wir 2 Möglichkeiten haben: vbBinaryCompare, vbTextCompare.

Die erste Option verwendet den binären Vergleich, wobei die Strings im Vergleich eine exakte Übereinstimmung haben müssen.

Die zweite Option gibt an, dass der Vergleich eine groß– und kleinschreibungs-unabhängige Methode an.

Code – VBS Replace

In diesem Abschnitt kannst Du nun ein oder mehrere Beispiele zur Funktion sehen:

Einfaches Beispiel

Im ersten Beispiel deklariere ich die „msg„-Variable, mit anschließendem Wert „This is a beautiful day!“.

Im nächsten Schritt ersetze ich das „beautifuldurch perfect“ und es kommt diese Nachricht zu Stande:

VBS Replace
VBS Replace Beispiel
Dim msg
msg = "This is a beautiful day!"
msg = Replace(msg, "beautiful", "perfect")
MsgBox(msg)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert