doppelte Leerstellen innerhalb einem string entfernen VBS
Hallo Forum,
im Rahmen einer Datensatzübergabe (txtFile mit feste Feldlänge) werden u.A.
3 Felder übergeben, die eine unbestimmte Anzahl an Leerzeichen enthalten.
Dummerweise innerhalb des Feldes. Also mit Trim komme ich hier nicht weiter.
Beispiel:
Ich mache es bisher mit einer Replace-Funktion.
Doch damit ich auf der sicheren Seite bin jage ich das replace 50x drüber
Aber das ist natürlich nicht gerade performant
Wer hat eine besser also schnelle und trotzdem zuverlässige VBS-Alternative?
Danke pacobay
PS es handelt sich um einen Teilaspekt meiner Lösung zur der Anfrage:
Preislisten umwandeln
nslookup bringt fehlermeldung
im Rahmen einer Datensatzübergabe (txtFile mit feste Feldlänge) werden u.A.
3 Felder übergeben, die eine unbestimmte Anzahl an Leerzeichen enthalten.
Dummerweise innerhalb des Feldes. Also mit Trim komme ich hier nicht weiter.
Beispiel:
part02= abc xyz;
part03= abc xyz;
part04= abc xyz;
Ich mache es bisher mit einer Replace-Funktion.
Doch damit ich auf der sicheren Seite bin jage ich das replace 50x drüber
Aber das ist natürlich nicht gerade performant
Wer hat eine besser also schnelle und trotzdem zuverlässige VBS-Alternative?
Danke pacobay
PS es handelt sich um einen Teilaspekt meiner Lösung zur der Anfrage:
Preislisten umwandeln
nslookup bringt fehlermeldung
' VB Script Document
Option explicit
'
DIM part02,part03,part04
'
Const TZ =";" 'Trennzeichen
'
'
part02="abc xyz"
part03= "abc xyz"
part04= "abc xyz"
'
'für Funktion Ersetze
dim SuchString, Suchmuster, ErsatzMuster
'
Suchmuster = chr(32)&chr(32) ' zwei Leerstellen
ErsatzMuster = chr(32) ' eine Leerstellen
'
Dim i
i=0
Do until i=50
part02= Ersetze(part02,Suchmuster, ErsatzMuster)
part03= Ersetze(part03,Suchmuster, ErsatzMuster)
part04= Ersetze(part04,Suchmuster, ErsatzMuster)
i=i+1
loop
'
Wscript.echo part02&TZ&part03&TZ& part04&TZ
'
'
Function Ersetze(SuchString,Suchmuster, ErsatzMuster)
'
Dim regAusdr ' Variablen erstellen.
Set regAusdr = New RegExp ' Erstellt einen regulären Ausdruck.
regAusdr.Pattern = Suchmuster ' Legt das Suchmuster fest.
regAusdr.IgnoreCase = True ' Ignoriert die Groß-/Kleinschreibung.
regAusdr.Global = True ' Legt globales Anwenden fest.
'
' Führe nun die Ersetzung durch und weise es als Funktionswert zu.
'
Ersetze=regAusdr.Replace(SuchString,ErsatzMuster)
'
End Function
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 76371
Url: https://administrator.de/contentid/76371
Ausgedruckt am: 20.11.2024 um 04:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo pacobay!
Wenn Du schon mit Kanonen (RegExp) auf Spatzen schießt (ein simples
täte es schließlich auch ganz ohne eigene Function), dann aber richtig:
Grüße
bastla
Wenn Du schon mit Kanonen (RegExp) auf Spatzen schießt (ein simples
part02 = Replace(part02, Suchmuster, ErsatzMuster)
...
Suchmuster = " +" 'mindestens eine Leerstelle
ErsatzMuster = " " 'genau eine Leerstelle
part02 = Ersetze(part02,Suchmuster, ErsatzMuster)
part03 = Ersetze(part03,Suchmuster, ErsatzMuster)
part04 = Ersetze(part04,Suchmuster, ErsatzMuster)
...
Grüße
bastla