Soll ein einzelnes bestimmtes Zeichen aus einem String entfernt werden, verwendet man i.a.R. die Replace-Methode: Dim sText As String sText = "Hallo, wie geht's?" ' Komma (,) aus dem String entfernen sText = Replace(sText, ",", "") Muss man mehrere Zeichen, die sich an beliebiger Stelle befinden, entfernen, müsste man die Replace-Funktion mehrfach aufrufen: Dim sText As String sText = "Hallo, wie geht's?" ' Komma (,) und Fragezeichen (?) aus aus dem String entfernen sText = Replace(sText, ",", "") sText = Replace(sText, "?", "") Will man bspw. alle Satzzeichen aus einem String entfernen, müsste man die Replace-Funktion x-mal aufrufen! Das kostet Zeit, zumal die Replace-Funktion ggf. unnötig aufgerufen wird, falls im String bestimmte Satzzeichen gar nicht vorhanden sind! Dim sText As String sText = "Hallo, wie geht's?" ' alle Satzzeichen entfernen sText = Replace(sText, ",", "") sText = Replace(sText, ".", "") sText = Replace(sText, ";", "") sText = Replace(sText, "!", "") sText = Replace(sText, "?", "") ' usw. Für diese und ähnliche Zwecke sollte gibt es aber auch die "regulären Ausdrücke". Um reguläre Ausdrücke anwenden zu können, müssen Sie dem Projekt einen Verweis auf Microsoft VBScript Regular Expressions 5.x hinzufügen oder Sie verwenden Late-Binding, wie in unserem Tipp. Dim sText As String sText = "Hallo, wie geht's?" ' RegExp via Late-Bindung instanzieren Dim oRegExp As Object Set oRegExp = CreateObject("VBScript.RegExp") With oRegExp .IgnoreCase = True .Global = True .MultiLine = True .Pattern = "[\.,!?;:]" ' alle nicht zulässigen Zeichen ersetzen sText = .Replace(sText, "") End With Set oRegExp = Nothing Die zu ersetzenden Satzzeichen befinden sich hierbei allesamt in der Eigenschaft Pattern nach [\ und vor dem anschließenden ] Zeichen. In obigen Fall werden demnach die Zeichen ".,!?;:" aus dem String entfernt. Um das Ganze ein wenig universeller einsetzbar zu machen, verpacken wir die "Ersetzen-/Löschfunktion" in eine eigene kleine Funktion, bei der sich über einen optionalen Parameter noch ein Zeichen angeben lässt, mit dem die unzulässigen Zeichen ersetzt werden sollen. Standardmäßig wird eine leere Zeichenkette angenommen, so dass die unzulässigen Zeichen aus dem String entfernt werden. ' beliebige Zeichen entfernen / ersetzen Public Function RemoveChars(ByVal Source As String, ByVal Chars As String, _ Optional ByVal ReplaceWith As String = "") As String ' RegExp via Late-Bindung instanzieren Dim oRegExp As Object ' RegExp Set oRegExp = CreateObject("VBScript.RegExp") With oRegExp .IgnoreCase = True .Global = True .MultiLine = True .Pattern = "[\" & Chars & "]" ' alle nicht zulässigen Zeichen ersetzen RemoveChars = .Replace(Source, ReplaceWith) End With Set oRegExp = Nothing End Function Beispiel: Dim sText As String sText = "Hallo, wie geht's?" ' alle Satzzeichen entfernen sText = RemoveChars(sText, ".,!?;:") Dieser Tipp wurde bereits 17.302 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 sevAniGif (VB/VBA) Anzeigen von animierten GIF-Dateien Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |