pacobay
Goto Top

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:
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

Content-ID: 76371

Url: https://administrator.de/forum/doppelte-leerstellen-innerhalb-einem-string-entfernen-vbs-76371.html

Ausgedruckt am: 22.12.2024 um 15:12 Uhr

bastla
bastla 20.12.2007 um 08:57:44 Uhr
Goto Top
Hallo pacobay!

Wenn Du schon mit Kanonen (RegExp) auf Spatzen schießt (ein simples
part02 = Replace(part02, Suchmuster, ErsatzMuster)
täte es schließlich auch ganz ohne eigene Function), dann aber richtig:
...

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
pacobay
pacobay 20.12.2007 um 09:07:36 Uhr
Goto Top
Morgen Bastla,

auf Dich hatte ich gehofft!! face-smile

Ein einfaches + löst das Problem?!

Tja gewußt wie !

Werde ich sofort umsetzten!

Danke pacobay
pacobay
pacobay 20.12.2007 um 09:28:46 Uhr
Goto Top
@bastla
zwischenstand
Yeah geprüft gewogen und für gut empfunden!
noch nicht genau gemessen aber erwartungsgemäss wesentlich schneller

Yeahh pacobay

nun werde ich noch versuchen es ohne die funktion testen
müßte dann ja noch besser laufen