...of ik doe iets fout (probably)...
In het kader van MS 70-536 lesstof ben ik met RegEx aan het spelen. Ik probeer alle exit codes uit windowsupdate.log te lezen en op de console te zetten met datum en tijd. Mijn code is als volgt, los gebaseerd op voorbeeld uit 't boek van MS Press:
Hij processed alleen de eerste regel. Ik heb het logbestand even naar de root van c: gekopieerd en wat gespeeld, met regels bovenaan zetten die hij moet pakken en verder leeg laten. Ervaring is dat hij alleen de eerste regel leest en dan stopt. Dus wat doe ik fout?
In het kader van MS 70-536 lesstof ben ik met RegEx aan het spelen. Ik probeer alle exit codes uit windowsupdate.log te lezen en op de console te zetten met datum en tijd. Mijn code is als volgt, los gebaseerd op voorbeeld uit 't boek van MS Press:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| Imports System.IO Imports System.Text.RegularExpressions Module Module1 Sub Main() Dim sr As New StreamReader("c:\WindowsUpdate2.log") Dim f As String = sr.ReadToEnd sr.Close() Dim r As Regex Dim m As Match '2009-10-09 19:44:03:275 1032 19a0 Service ** END ** Service: Service exit [Exit code = 0x240001] r = New Regex("^(?<date>\d{4}-\d{2}-\d{2})\s+(?<time>\d{2}:\d{2}:\d{2}:\d{3})\s+[\s\S]+\[Exit code = (?<code>\w+)\]$", RegexOptions.Multiline) m = r.Match(f) While m.Success Console.WriteLine("Date: {0}, Time: {1}, Exit-code: {2}", m.Groups("date"), m.Groups("time"), m.Groups("code")) m = m.NextMatch End While Console.ReadKey() End Sub End Module |
Hij processed alleen de eerste regel. Ik heb het logbestand even naar de root van c: gekopieerd en wat gespeeld, met regels bovenaan zetten die hij moet pakken en verder leeg laten. Ervaring is dat hij alleen de eerste regel leest en dan stopt. Dus wat doe ik fout?