Top-Themen

Aktuelle Themen (A bis Z)

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

Mitglied: pacobay

pacobay (Level 1) - Jetzt verbinden

20.12.2007, aktualisiert 09:28 Uhr, 7487 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
https://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
Batch & Shell

VBS String nach letztem Leerzeichen teilen

gelöst Frage von citroendsvierBatch & Shell8 Kommentare

Hallo zusammen, ich habe in VBS eine Variable, die in etwa folgenden Inhalt enthält: Jetzt möchte ich das ganze ...

Datenbanken

SQL - mehrere UPDATE-Anweisungen in einem String per vbs

gelöst Frage von goodbytesDatenbanken4 Kommentare

Hallo, ich möchte mehrere Werte in eine MySQL-Datenbank mittels vbs-Script eintragen. Eigentlich besteht jede Zeile aus "Update ;", bei ...

Outlook & Mail

EMails werden nach 3 Monaten entfern - Einstellung

Frage von staybbOutlook & Mail5 Kommentare

Hallo, ich habe bei einem Postfach das Problem, dass in Outlook alle Mails älter wie 3 Jahre verscheinden und ...

Hardware

Doppelt geklickt trotz Singleclick

gelöst Frage von honeybeeHardware6 Kommentare

Hallo, ich habe auf einem Tablet-PC was komisches festgestellt: Wenn ich mit einer normalen kabelgebundenen Maus auf einen Button ...

Neue Wissensbeiträge
Humor (lol)
Administrator.de Perlen
Tipp von DerWindowsFreak2 vor 2 TagenHumor (lol)3 Kommentare

Hallo, Heute beim stöbern auf dieser Seite bin auf folgenden Thread aus dem Jahre 2006 gestossen: Was meint ihr? ...

Erkennung und -Abwehr
OpenSSH-Backdoor Malware erkennen
Tipp von Frank vor 3 TagenErkennung und -Abwehr

Sicherheitsforscher von Eset haben 21 Malware-Familien untersucht. Die Malware soll Hintertüren via OpenSSH bereitstellen, so dass Angreifer Fernzugriff auf ...

iOS
WatchChat für Whatsapp
Tipp von Criemo vor 6 TageniOS5 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor!
Tipp von Criemo vor 7 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
PCIe 1.0 Grafikkarte für 3840x2160
Frage von Windows10GegnerGrafikkarten & Monitore30 Kommentare

Hallo, mein Vater hat einen neuen Monitor gekauft, welcher eine native Auflösung von 3840*2160 hat. Diese muss jetzt auch ...

Windows Server
Dienstnamen und oder Deutsche und Englische Beschreibung in services.msc gleichzeitig anzeigen
gelöst Frage von vafk18Windows Server23 Kommentare

Guten Morgen, die Suche nach Diensten in services.msc gestaltet sich immer wieder schwierig, weil mir je nach Aufgabe die ...

Windows 10
Windows Enterprise 1809 Eval nicht bootbar
Frage von Sunny89Windows 1022 Kommentare

Hallo zusammen, bevor ich mich jetzt noch stundenlang rumärger wollte ich euch fragen, ob Ihr die gleichen Probleme habt ...

JavaScript
Javascript: WebSql
gelöst Frage von internet2107JavaScript13 Kommentare

Guten Morgen zusammen, zunächst einmal einen schönen dritten Advent. Ich habe ein Problem mit Javascript und WebSQL. Bisher habe ...