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, 6986 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 ...

Batch & Shell
gelöst Doppelte Dateneinträge per Batch aus Datei löschen? HILFE (5)

Frage von freshman2017 zum Thema Batch & Shell ...

Batch & Shell
gelöst Einen Teil eines Textpfades aus einer TXT per Batch entfernen!? (3)

Frage von kampen zum Thema Batch & Shell ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Statische Routen mit Shorewall, ISC-DHCP Server konfigurieren für Android Devices (23)

Frage von terminator zum Thema LAN, WAN, Wireless ...

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

Hardware
16-20 Port POE Switch mit VLAN (16)

Frage von thomasreischer zum Thema Hardware ...

Outlook & Mail
Outlook 2010 mit Exchange 2016 (15)

Frage von slansky zum Thema Outlook & Mail ...