Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

doppelte Leerstellen innerhalb einem string entfernen VBS

Frage Entwicklung

Mitglied: pacobay

pacobay (Level 1) - Jetzt verbinden

20.12.2007, aktualisiert 09:28 Uhr, 7030 Aufrufe, 3 Kommentare

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:
01.
part02= abc                               xyz; 
02.
part03= abc               xyz; 
03.
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
http://www.administrator.de/?content=89fb6540e5a9f722a90b3a54020f4a83

01.
' VB Script Document 
02.
Option explicit 
03.
04.
DIM part02,part03,part04 
05.
06.
Const TZ =";"                       'Trennzeichen 
07.
08.
09.
part02="abc                               xyz" 
10.
part03= "abc               xyz" 
11.
part04= "abc                       xyz" 
12.
13.
'für  Funktion Ersetze 
14.
dim SuchString, Suchmuster, ErsatzMuster 
15.
16.
  Suchmuster   = chr(32)&chr(32)  	' zwei Leerstellen 
17.
  ErsatzMuster = chr(32)		' eine Leerstellen 
18.
19.
Dim i 
20.
i=0 
21.
Do until i=50 
22.
  part02= Ersetze(part02,Suchmuster, ErsatzMuster) 
23.
  part03= Ersetze(part03,Suchmuster, ErsatzMuster) 
24.
  part04= Ersetze(part04,Suchmuster, ErsatzMuster) 
25.
  i=i+1 
26.
loop 
27.
28.
Wscript.echo part02&TZ&part03&TZ& part04&TZ 
29.
30.
31.
Function Ersetze(SuchString,Suchmuster, ErsatzMuster) 
32.
33.
  Dim regAusdr                                   ' Variablen erstellen. 
34.
  Set regAusdr = New RegExp            ' Erstellt einen regulären Ausdruck. 
35.
  regAusdr.Pattern = Suchmuster       ' Legt das Suchmuster fest. 
36.
  regAusdr.IgnoreCase = True            ' Ignoriert die Groß-/Kleinschreibung. 
37.
  regAusdr.Global = True                     ' Legt globales Anwenden fest. 
38.
39.
  ' Führe nun die Ersetzung durch und weise es als Funktionswert zu. 
40.
41.
  Ersetze=regAusdr.Replace(SuchString,ErsatzMuster) 
42.
43.
End Function
Mitglied: bastla
20.12.2007 um 08:57 Uhr
Hallo pacobay!

Wenn Du schon mit Kanonen (RegExp) auf Spatzen schießt (ein simples
01.
part02 = Replace(part02, Suchmuster, ErsatzMuster)
täte es schließlich auch ganz ohne eigene Function), dann aber richtig:
01.
... 
02.
 
03.
Suchmuster   = " +"  	'mindestens eine Leerstelle 
04.
ErsatzMuster = " "  	'genau eine Leerstelle 
05.
 
06.
part02 = Ersetze(part02,Suchmuster, ErsatzMuster) 
07.
part03 = Ersetze(part03,Suchmuster, ErsatzMuster) 
08.
part04 = Ersetze(part04,Suchmuster, ErsatzMuster) 
09.
 
10.
...
Grüße
bastla
Bitte warten ..
Mitglied: pacobay
20.12.2007 um 09:07 Uhr
Morgen Bastla,

auf Dich hatte ich gehofft!!

Ein einfaches + löst das Problem?!

Tja gewußt wie !

Werde ich sofort umsetzten!

Danke pacobay
Bitte warten ..
Mitglied: pacobay
20.12.2007 um 09:28 Uhr
@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
Bitte warten ..
Ähnliche Inhalte
Multimedia
gelöst PDF: Alle Seiten entfernen, welche nicht definierten String enthalten (9)

Frage von MegaGiga zum Thema Multimedia ...

Blogs
gelöst WordPress.com: Link zum vorherigen bzw. nächsten Beitrag entfernen (7)

Frage von honeybee zum Thema Blogs ...

Batch & Shell
gelöst PowerShell Skript für doppelte Dateinamen (1)

Frage von janelsaesser zum Thema Batch & Shell ...

Batch & Shell
Cpl Dateien per Batch oder VBS öffnen (1)

Frage von Angelo131095 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Administrator.de Feedback

Umgangsformen auf der Seite

(7)

Information von Frank zum Thema Administrator.de Feedback ...

Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(10)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Dir tc Befehl unter Windows 10 macht Probleme (14)

Frage von sugram zum Thema Batch & Shell ...

Windows Server
Windows Server 2016 RDS Remoteapp Anzeigefehler (11)

Frage von qlnGenius zum Thema Windows Server ...

Windows Server
Festplatten Ruhezustand Windows Server 2016 (10)

Frage von ahaeuser zum Thema Windows Server ...