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

VBS String nach letztem Leerzeichen teilen

Frage Entwicklung Batch & Shell

Mitglied: citroendsvier

citroendsvier (Level 1) - Jetzt verbinden

17.01.2015, aktualisiert 11:57 Uhr, 1027 Aufrufe, 8 Kommentare

Hallo zusammen,

ich habe in VBS eine Variable, die in etwa folgenden Inhalt enthält:
01.
Intel (TM) Core (TM) i5-3570K  @ 3.4 GHz 2098209,1
Jetzt möchte ich das ganze aufteilen in zwei Teile, einmal das Core i5 Zeug (ab Anfang), und einmal die Zahl am Ende. Da vorne aber auch ein anderes CPU Modell stehen könnte, ist die Zahl der Leerzeichen nicht festgelegt. Ich müsste also beim letzten Leerzeichen teilen.
Wie kann ich das anstellen?

Ach ja, die Länge der Zahl am Ende ist leider auch nicht fest...

Mit freundlichen Grüßen, V40
Mitglied: bastla
LÖSUNG 17.01.2015, aktualisiert um 11:57 Uhr
Hallo citroendsvier!

Sollte sich etwa so lösen lassen:
01.
S = "Intel (TM) Core (TM) i5-3570K  @ 3.4 GHz 2098209,1" 
02.
P = InStrRev(S, " ") 
03.
T1 = Left(S, P - 1) 
04.
T2 = Mid(S, P + 1)
Grüße
bastla
Bitte warten ..
Mitglied: 114757
LÖSUNG 17.01.2015, aktualisiert um 11:57 Uhr
01.
str = "Intel (TM) Core (TM) i5-3570K  @ 3.4 GHz 2098209,1" 
02.
strCPU = Left(str, InStrRev(str, " ",-1,vbTextCompare)-1) 
03.
strNumber = Mid(str,InStrRev(str, " ",-1,vbTextCompare)+1)
Gruß jodel32
Bitte warten ..
Mitglied: citroendsvier
17.01.2015 um 11:05 Uhr
Hallo Bastla,
danke für deine Antwort!

Ich kriege bei deiner Lösung zwar den CPU Namen korrekt, die Variable mit der Zahl ist aber etwas... hmm. In meiner Zahl steht "TM) Core (TM) ...." usw. bis Ende der Zahl. Liegt's vielleicht an mir?

@114757: Deine Variante teste ich gleich, dir auch danke!

MfG, V40
Bitte warten ..
Mitglied: 114757
17.01.2015, aktualisiert um 11:13 Uhr
Und mit Regex gehts auch so
01.
str = "Intel (TM) Core (TM) i5-3570K  @ 3.4 GHz 2098209,1" 
02.
Set regex = CreateObject("Vbscript.regexp") 
03.
regex.pattern = "(.*) (.*)$" 
04.
set matches = regex.Execute(str) 
05.
If matches.count > 0 Then 
06.
     strCPU = matches(0).Submatches(0) 
07.
     strCPU = matches(0).Submatches(1) 
08.
End if
Bitte warten ..
Mitglied: bastla
17.01.2015 um 11:18 Uhr
Hallo citroendsvier!
Ich kriege bei deiner Lösung zwar den CPU Namen korrekt, die Variable mit der Zahl ist aber etwas... hmm.
Das Problem ist schwer nachvollziehbar - in der Variablen P steht die Zeichenposition des letzten Leerzeichens, und diese wird bei der Zerlegung für beide Bestandteile verwendet.

Poste doch mal den von Dir vewendeten Code ...

Grüße
bastla
Bitte warten ..
Mitglied: citroendsvier
17.01.2015, aktualisiert um 11:57 Uhr
Das mach ich jetzt... ich blick selber nicht mehr durch

01.
Set File = FSO.OpenTextFile("Data.txt", ForReading, false) 
02.
Dim OtherCPU(9) 
03.
i = 0 
04.
while not File.AtEndOfStream and i < 10 
05.
	OtherCPU(i) = File.ReadLine 
06.
	i = i + 1 
07.
Wend 
08.
i = i - 1 
09.
Dim Laenge(15), SplittenCPU(10), SplittenPoints(10), P(20), S(20) 
10.
for a = 0 To i 
11.
	Laenge(a) = len(OtherCPU(a)) 
12.
	 
13.
	OtherCPU(a) = Mid(OtherCPU(a), 42) ' "Benutzer...mit dem" wegmachen 
14.
	Laenge(a) = len(OtherCPU(a)) 
15.
	OtherCPU(a) = Left(OtherCPU(a), Laenge(a)-16) 
16.
	 
17.
	P(a) = InStrRev(OtherCPU(A), " ") 
18.
	S(a) = InStr(OtherCPU(a), " ") 
19.
	SplittenCPU(a) = Left(OtherCPU(a), P(a) - 1) 
20.
	'SplittenPoints(a) = Right(OtherCPU(a), P(a) + 1) 
21.
	 
22.
	 
23.
	MsgBox OtherCPU(a) & vbCr & SplittenCPU(a) & "." & vbCr & SplittenPoints(a) & "." & vbCr & P(A) & vbCr & S(A) 
24.
Next
Bitte warten ..
Mitglied: bastla
LÖSUNG 17.01.2015, aktualisiert um 11:57 Uhr
Hallo citroendsvier!

Wenn Du dich entschließen kannst, anstelle von Right das (auch vom Kollegen jodel32 in seinem ersten Ansatz) vorgeschlagene Mid zu verwenden, sollte das auch bei Dir funktionieren ...

Grüße
bastla

P.S.: Zumindest für P und S wären einfache Variablen ausreichend ...
Bitte warten ..
Mitglied: citroendsvier
17.01.2015 um 11:57 Uhr
Vielen Dank! Jetzt klappts.

Ja, stimmt. Danke!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Teil eines Strings als Variable setzen (2)

Frage von tHe-jAy zum Thema Batch & Shell ...

Batch & Shell
gelöst Schreiben eines Strings mit Leerzeichen in eine Datei (6)

Frage von c20082005 zum Thema Batch & Shell ...

Visual Studio
gelöst DotNet String Sortierung (5)

Frage von emeriks zum Thema Visual Studio ...

Batch & Shell
Leerzeichen im Pfad (4)

Frage von Jallio zum Thema Batch & Shell ...

Neue Wissensbeiträge
LAN, WAN, Wireless

Schwachstelle im WPA2 Protokoll veröffentlicht

(3)

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

Heiß diskutierte Inhalte
Windows Server
gelöst Gruppenrichtlinie greift nicht zu! (21)

Frage von Syosse zum Thema Windows Server ...

Windows 7
gelöst Windows 7 Anmeldedomäne festlegen (13)

Frage von flotaut zum Thema Windows 7 ...

Windows Server
gelöst WSUS Updates auf iSCSI speichern (10)

Frage von lcer00 zum Thema Windows Server ...