Hi,
Ich habe es jetzt selbst hinbekommen.
Dein Script funktioniert leider nicht ganz.
Es gibt mir leider auch noch andere Zeilen in der log mit aus.
Evtl. auch mein Fehler hier nochmal die log mit bsp. für die ausnahmen die vorkommen können (sind nicht alle):
Spoiler anzeigen
[09.05.2013 18:19:35] ^5Player List: [Slot #] [GUID] [Status] [Auth Rate] [Recent SS] [Name]
^51 (VALID) OK 3.2 0{0|0} name
^5End of Player List (1 Player)
[09.05.2013 18:25:25] pb_MsgPrefix = ^5PunkBuster Client
[09.05.2013 18:25:25] pb_Sleep = 500 (20 to 500)
[09.05.2013 18:30:47] pb_MsgPrefix = ^5PunkBuster Client
[09.05.2013 18:30:47] pb_Sleep = 500 (20 to 500)
[09.05.2013 18:30:47] pb_LogToFile = 1 (0=No, 1=Yes)
[09.05.2013 18:30:47] pb_SsLog = 1 (0=No, 1=Yes)
[09.05.2013 18:30:47] pb_SsSave = 1 (0=No, 1=Yes)
[09.05.2013 18:30:47] Screenshots: W=640, H=480, X=50%, Y=50%, Srate=1
[09.05.2013 18:30:47] pb_LogUser =
[09.05.2013 18:30:47] pb_LogPw =
[09.05.2013 18:30:47] pb_LogAddr =
[09.05.2013 18:30:47] pb_LogPort = 1 (1 to 65535)
[09.05.2013 18:30:48] PB_SYSTEM = 0 (0 to 1)
[09.05.2013 18:30:48] Warning: Corrupted Interface
[09.05.2013 18:30:48] Attempting to resolve master7.evenbalance.com
[09.05.2013 18:30:48] Resolved to [50.62.82.210] (19)
[09.05.2013 18:30:48] PunkBuster Client (v2.318 | A0) Enabled
[09.05.2013 18:30:48] Game Version [CoD4 MP 1.7 build 568 nightly Wed Jun 18 2008 04:48:38PM win-x86]
[09.05.2013 18:30:48] Not Connected to a Server
[09.05.2013 18:30:51] PB Services socket initialized
[09.05.2013 18:30:54] PnkBstrA successfully loaded PnkBstrB
[09.05.2013 18:30:57] PnkBstrB service installed and started successfully
[09.05.2013 18:31:05] Connected to Server loopback
[09.05.2013 18:31:07] WARNING: ^7PB Kicks for Non-standard Characters and Level 1 PB Restrictions on this Server
[09.05.2013 18:31:07] Receiving from PB Server (w v1.828 | A1407 C2.318)
[09.05.2013 18:21:15] ^5Player List: [Slot #] [GUID] [Status] [Auth Rate] [Recent SS] [Name]
^53 GUID1234(VALID) OK 3.0 0{0|0} name
^54 GUID1234(VALID) OK 6.6 0{0|0} name
^55 GUID1234(VALID) OK 3.1 0{0|0} name
^56 GUID1234(VALID) OK 3.2 0{0|0} name
^57 GUID1234(VALID) OK 3.1 0{0|0} name
^58 GUID1234(VALID) OK 3.2 0{0|0} name
^59 GUID1234(VALID) OK 3.1 0{0|0} name
^510 GUID1234(VALID) OK 3.0 0{0|0} name
^511 GUID1234(VALID) OK 3.2 0{0|0} name
^512 GUID1234(VALID) OK 3.3 0{0|0} name
^5End of Player List (10 Players)
[09.05.2013 18:24:04] ^5Player List: [Slot #] [GUID] [Status] [Auth Rate] [Recent SS] [Name]
^54 GUID1234(VALID) OK 3.6 0{0|0} name
^55 GUID1234(VALID) OK 4.0 0{0|0} name
^56 GUID1234(VALID) OK 4.0 0{0|0} name
^57 GUID1234(VALID) OK 3.6 0{0|0} name
^58 GUID1234(VALID) OK 4.0 0{0|0} name
^59 GUID1234(VALID) OK 3.3 0{0|0} name
^510 GUID1234(VALID) OK 3.6 0{0|0} name
^511 GUID1234(VALID) OK 3.6 0{0|0} name
^512 GUID1234(VALID) OK 3.3 0{0|0} name
^514 GUID1234(VALID) OK 4.0 0{0|0} name
^515 GUID1234(VALID) OK 4.0 0{0|0} name
^5End of Player List (11 Players)
[09.05.2013 18:31:11] ^5Player List: [Slot #] [GUID] [Status] [Auth Rate] [Recent SS] [Name]
^51 (VALID) OK 0.0 0{0|0} name
^5End of Player List (1 Player)
Alles anzeigen
Ich kann dir auch nicht genau sagen wiso weil ich erst seit heute mit RegExp Arbeite aber das hier ist jetzt meine Lösung:
[autoit]$data = StringRegExp($data, '(?:\[)([0-9]{1,2}.[0-9]{1,2}.[0-9]{1,4} [0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2})(?:\])(?: \^5Player List\: \[Slot \#\] \[GUID\] \[Status\] \[Auth Rate\] \[Recent SS\] \[Name\])(?s)(.*?)(?:\^5End of Player List)', 3)
$data2=StringRegExp($data[1], '(?:\^5[0-9]{1,2}\s{1,2})([a-f0-9]{0,8})(?:\(VALID\) OK [0-9].[0-9] [0-9]\{[0-9]\|[0-9]\} )(.*?(?m)$)',3);
Das muss natürlich noch durch eine schleife laufen...
Wenn jemand evtl. noch eine schneller Möglichkeit kennt...
Hier nochmal die Erklärung der Kriterien für den "match".
Spoiler anzeigen
- Datum in mm.dd.yyyy
- Zeit in hh:mm:ss
- dieser Text "^5Player List: [Slot #] [GUID] [Status] [Auth Rate] [Recent SS] [Name]" (immer der selbe)
- immer am anfang "^5" und dann eine zahl von 0-9 ein bis zwei mal
- 1 oder 2 leerzeichen je nach dem ob die zahl 2 stellig oder einstellig wahr
- die GUID immer 8 stellen [a-f] und [0-9]
- dieser Text "(VALID) OK "
- dann [0-9].[0-9] [0-9]{[0-9]|[0-9]}
- leerraum
- name zeilenumbruch
- und ganz am ende "^5End of Player List"