MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access - Code Archiv
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 07.10.2018, 13:18   #1
markusxy
MOF Meister
MOF Meister
Standard Codebeispiel - Verschiedene Zeichen durch ein Zeichen ersetzen

Da die Textverarbeitung mit Funktionen wie Replace$, Mid$ usw sehr langsam arbeitet, hier mal ein Beispiel wie man eine Reihe von Einzelzeichen performant durch ein Zeichen ersetzen kann.


Code:

'die notwendige API Deklaration um das erste Vorkommen eine Reihe von Einzelzeichen in einem Text zu erhalten
Private Declare PtrSafe Function StrCSpnW Lib "Shlwapi" (ByVal StrAdr As LongPtr, ByVal CharsetAdr As LongPtr) As Long


Function ReplaceMultiCharByOne(ByRef Source As String, ByRef CharsToReplace As String, ByRef ReplaceBy As String) As String
    Dim AdrCharSet As LongPtr
    Dim AdrString As LongPtr
    Dim pos As Long
    Dim LenString As Long

    'init
    If Len(ReplaceBy) <> 1 Then Err.Raise 888, , "ReplaceBy must be one figure"
    
    ReplaceMultiCharByOne = Source
    LenString = Len(Source) + 1
    AdrString = StrPtr(ReplaceMultiCharByOne)
    AdrCharSet = StrPtr(CharsToReplace)
    
            
    pos = StrCSpnW(AdrString, AdrCharSet) + 1
    Do Until pos = LenString
        
        Mid(ReplaceMultiCharByOne, pos, 1) = ReplaceBy
        pos = StrCSpnW(AdrString + pos * 2, AdrCharSet) + pos + 1
    Loop
    
End Function
Aufruf aus dem Direktbereich:

?ReplaceMultiCharByOne("+ab@cd+", "+*@", "_")
_ab_cd_

Geändert von markusxy (07.10.2018 um 13:49 Uhr). Grund: API Deklaration um PtrSafe erweitert.
markusxy ist gerade online  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:31 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.