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, 7366 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
Zeichen aus einem String entfernen
gelöst Frage von JimStarBatch & Shell3 Kommentare

Guten Tag zusammen, ich möchte folgendes tun: In einer Textdatei, steht eine Zeile. Diese beinhaltet z.B.: Diese Textzeile muss ...

Batch & Shell
Teile eines Strings entfernen
gelöst Frage von oesi1989Batch & Shell17 Kommentare

Ich würde gerne die Domäne und den hinteren Teil entfernen lassen mit "Remove". Leider klappt es nicht immer, da ...

Visual Studio

VBScript Zeichenfolge aus String entfernen

gelöst Frage von Leogal0010Visual Studio1 Kommentar

Hallo, Community! Ich habe da ein Problem: Ich schreibe einen kleinen "LAN-Chat" mit VBScript/VBS. D.h. auf einem Laufwerk, auf ...

Batch & Shell

Doppelte Einträge mit Batch entfernen

gelöst Frage von Kugelschreiber15Batch & Shell8 Kommentare

Hallo Leute, bin grad dabei ein kleines Tool zu basteln und habe nun eine Frage! Ich suche mit Hilfe ...

Neue Wissensbeiträge
Drucker und Scanner
HP-MF-Drucker per Fax angreifbsr
Information von Lochkartenstanzer vor 23 StundenDrucker und Scanner2 Kommentare

Endlich eine sinnvolle Verwendung für Faxe: Damit kann man offensichtlich den Drucker übernehmen. lks

Router & Routing

Das pfSense Buch ist jetzt für jeden kostenlos zu beziehen

Tipp von magicteddy vor 1 TagRouter & Routing2 Kommentare

Bisher war das Buch nur für zahlende Unterstützer verfügbar, jetzt steht für Jedermann kostenlos zur Verfügung. Siehe auch The ...

Firewall

Möglicherweise neue Sicherheitslücke in Mikrotik-Firmware

Information von LordGurke vor 3 TagenFirewall3 Kommentare

Hallo zusammen, vor ein paar Monaten gab es ja bereits eine Sicherheitslücke in der Firmware von Mikrotik-Routern, über welche ...

Erkennung und -Abwehr
Rechner hacken mit Cortana, auch Remote
Information von Lochkartenstanzer vor 4 TagenErkennung und -Abwehr3 Kommentare

heise berichtet über den Vortrag von der Blackhat Open Sesame: Picking Locks with Cortana. Einige Fehler sind schon gefixt, ...

Heiß diskutierte Inhalte
Windows Netzwerk
Performance bei Terminalserver
Frage von azizalexanderWindows Netzwerk20 Kommentare

Hallo zusammen, Ich wusste nicht in welches Thema meine Frage passt ich Bitte um Vergebung falls ich hier falsch ...

CPU, RAM, Mainboards
Xeon E5620: noch schnell genug?
Frage von ahussainCPU, RAM, Mainboards18 Kommentare

Hallo allerseits, ich habe die Möglichkeit, aus Restbeständen einen Tower mit Xeon E5620 CPU und 24 GB RAM zu ...

Exchange Server
Exchange 2013 - Unable to Relay nach extern, SuperMailer
Frage von leon123Exchange Server16 Kommentare

Hallo zusammen, ich brauch mal wieder eure Hilfe. Ich beschäftige mich gerade mit dem SuperMailer und erhalte vom Exchange ...

Windows Server
Remote Desktop Services User Profile Disk - DFS
Frage von einzelkindWindows Server16 Kommentare

Hallo Miteinander, ich richte gerade eine neue RDS Farm auf Basis von Windows Server 2016 ein. Von Server 2012 ...