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
Please also mark the comments that contributed to the solution of the article
Content-Key: 76371
Url: https://administrator.de/contentid/76371
Printed on: April 23, 2024 at 18:04 o'clock
3 Comments
Latest comment
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