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.312 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. |
Neu! sevPopUp 2.0 Dynamische Kontextmenüs! Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... 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 Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
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. |