Ik run al een tijdje een TS3 server en het leek mij leuk om een keer wat statistieken te bekijken.
De server houdt vanaf het begin log files bij en mijn idee is om deze te parsen en te analyseren dmv een c# programma (Visual Studio). In deze log files staan namelijk alle connect/disconnect activiteit.
De belangrijkste activiteiten uit de log files zijn:
De velden bevatten altijd dezelfde info en ik kan perfect splitten op de '|'.
Het probleem is dat de naam van de client vrij gekozen kan worden en dus ook de delimiter kan bevatten ( '|' ) of andere tekens (dus ook een single quote).
Wat ik heb geprobeerd is:
String.Split() [Link]
Splitten op '|' werkt perfect totdat ik deze delimiter in de username zet. Dan split die uiteraard ook daarop.
TextFieldParser [Link]
Deze heeft de optie om een delimiter in quotes over te slaan (HasFieldsEnclosedInQuotes), maar deze lijkt alleen te werken als deze in double quotes staat en niet zoals in het voorbeeld single quotes.
Ik heb even gekeken en ga zeker nog even kijken naar Regex. Dit zou mogelijk moeten zijn maar omdat dit vrij nieuw voor me is kom ik nog niet echt lekker op weg.
Wie weet de oplossing voor mij of kan mij op de goede weg zetten?
...
De server houdt vanaf het begin log files bij en mijn idee is om deze te parsen en te analyseren dmv een c# programma (Visual Studio). In deze log files staan namelijk alle connect/disconnect activiteit.
De belangrijkste activiteiten uit de log files zijn:
code:
1
2
| 2017-05-10 22:13:40.323554|INFO |VirtualServerBase| 1| client connected '<Username>'(id:347) from <IP>:<Port> 2017-05-10 22:13:56.112414|INFO |VirtualServerBase| 1| client disconnected '<Username>'(id:347) reason 'reasonmsg=leaving' |
De velden bevatten altijd dezelfde info en ik kan perfect splitten op de '|'.
Het probleem is dat de naam van de client vrij gekozen kan worden en dus ook de delimiter kan bevatten ( '|' ) of andere tekens (dus ook een single quote).
Wat ik heb geprobeerd is:
String.Split() [Link]
Splitten op '|' werkt perfect totdat ik deze delimiter in de username zet. Dan split die uiteraard ook daarop.
TextFieldParser [Link]
Deze heeft de optie om een delimiter in quotes over te slaan (HasFieldsEnclosedInQuotes), maar deze lijkt alleen te werken als deze in double quotes staat en niet zoals in het voorbeeld single quotes.
Ik heb even gekeken en ga zeker nog even kijken naar Regex. Dit zou mogelijk moeten zijn maar omdat dit vrij nieuw voor me is kom ik nog niet echt lekker op weg.
Wie weet de oplossing voor mij of kan mij op de goede weg zetten?
...