If you have not heard about it yet - the Summer Scripting Games 2009 have started.
Well I am one day late (sorry!!) but I was trying to figure out the solution for the Event for Day 1 -Beginner - it was late last night and my brain was not working too well.
So I looked online today and want to thank Hugo Peters for helping me out with his solution for this event.
The problems I had with this solution was the fact that the file was not formatted correctly - there were spaces and tabs, therefore I had to parse the file and replace the spaces with tabs(Line 7).
Also how to extract the information and to place it into an array (Lines 13 - 24).
Here you go.
1: # Read the input file2: $InputFile = ".\100 Meter Event.txt"
3: $Content = Get-Content $InputFile 4: 5: #Since the lines are not all separated with tabs and some are with spaces, 6: #we will replace all spaces in the file with tabs7: $Content = $Content | foreach-object { $_ -replace "(.*)\s(.*)","`$1`t`$2" }
8: 9: # Prepare output collection 10: $myCollection = @() 11: 12: # Loop through lines in the file, exept the first one 13: ForEach ($Line in ($Content[1..$($Content.Length)])) 14: { 15: # Properties are separated by tabs16: $myObj = "" | Select Name, Country, Time #Create a new object with the columns
17: #Splitting the line on the tab returns 3 values - we get each one in turn and 18: #add it to the appropriate column19: $myObj.Name = $Line.Split("`t")[0] #Retrieve the Name
20: $myObj.Country = $Line.Split("`t")[1] #Retrieve the Country
21: $myObj.Time = $Line.Split("`t")[2] #Retrieve the time
22: # Add to output 23: $myCollection += $myObj 24: } 25: # Now we sort the the object on the Time column and Select the top 3 results 26: $myCollection | Sort Time | Select -First 3