Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Frage Entwicklung

Mitglied: pacobay

pacobay (Level 1) - Jetzt verbinden

20.12.2007, aktualisiert 09:28 Uhr, 7120 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 ...

Visual Studio
gelöst DotNet String Sortierung (5)

Frage von emeriks zum Thema Visual Studio ...

Windows 10
gelöst Windows 10: "Zweite" Taskleiste entfernen (6)

Frage von honeybee zum Thema Windows 10 ...

Batch & Shell
String Zeichenpaare auslesen und bearbeiten (6)

Frage von ahstax zum Thema Batch & Shell ...

Neue Wissensbeiträge
LAN, WAN, Wireless

Neue Cisco Catalyst-Serie 9000

Information von Kuemmel zum Thema LAN, WAN, Wireless ...

Sicherheit

Millionen Euro in den Sand gesetzt?

(3)

Information von transocean zum Thema Sicherheit ...

Heiß diskutierte Inhalte
Netzwerke
Mobile Einwahl IPSec VPN von iPhone iPad T-Mobile zur Pfsense (14)

Frage von Spitzbube zum Thema Netzwerke ...

LAN, WAN, Wireless
Eine Netzwerkdose im Wechsel für zwei unterschiedliche Netze (12)

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

Windows Netzwerk
Ordner-Freigabe außerhalb der Domäne (9)

Frage von Remsboys zum Thema Windows Netzwerk ...

Windows Server
gelöst "Anmelden über Remotedesktopdienste verweigern" lässt sich nicht bearbeiten! (9)

Frage von schollw zum Thema Windows Server ...