1: Filter FormatTime()
2: {
3: [System.Globalization.CultureInfo] $provider = [System.Globalization.CultureInfo]::InvariantCulture;
4: [DateTime] $dt = [DateTime]::ParseExact($_, "yyyy-MM-dd HH:mm:ss", $provider)
5: $DateTimeString = $dt.ToString()
6: return $DateTimeString
7: }
8:
9: Filter FToC()
10: {
11: return [Double](($_ - 32) * 5/9)
12: }
13:
14: Filter InHgToHPa()
15: {
16: return [Double](33.8639 * $_)
17: }
18:
19: Filter NOP()
20: {
21: return $_
22: }
23:
24: Filter MPHToKmPH()
25: {
26: return [Double](1.609344 * $_)
27: }
28:
29: Filter InToMm()
30: {
31: return [Double](25.4 * $_)
32: }
33:
34:
35: #For Loop doesn't work
36: $ConversionTable = @(
37: (get-item function:FormatTime),
38: (get-item function:FToC),
39: (get-item function:FToC),
40: (get-item function:InHgToHPa),
41: (get-item function:NOP),
42: (get-item function:MPHToKmPH),
43: (get-item function:MPHToKmPH),
44: (get-item function:NOP),
45: (get-item function:InToMm)
46: )
47:
48: $ConversionTable
49: $ConversionTable[0].GetType().FullName
50:
51:
52:
53: $Records = "Time,TemperatureC,DewpointC,PressureHPa,WindDirectionDegrees,WindSpeedKmH,WindSpeedGustKmH,Humidity,HourlyPrecipMm",
54: "2008-01-01 00:03:00,49.6,29.7,30.10,5,1,7,46,0.00",
55: "2008-01-01 00:08:00,49.5,29.6,30.10,68,3,3,46,0.00",
56: "2008-01-01 00:12:00,49.5,29.6,30.10,68,3,3,46,0.00",
57: "2008-01-01 00:17:00,49.5,29.6,30.10,68,3,3,46,0.00",
58: "2008-01-01 00:22:00,49.5,29.6,30.10,68,3,3,46,0.00",
59: "2008-01-01 00:27:00,49.5,29.6,30.10,68,3,3,46,0.00",
60: "2008-01-01 00:32:00,49.2,30.4,30.10,300,3,4,48,0.00",
61: "2008-01-01 00:37:00,49.0,30.7,30.10,328,3,12,49,0.00"
62:
63:
64: Filter Filter-Header
65: {
66: if($_ -match "^Time")
67: {
68: $_ | out-null
69: }
70: else
71: {
72: $_
73: }
74: }
75:
76:
77: #Combi-Filter using array of FilterInfo objects
78: Filter Filter-USToMetricA($d=",")
79: {
80: $Fields = $_.Split($d)
81:
82: for ($i = 0; $i -lt 9; $i++)
83: {
84: $Fields[$i] = $Fields[$i] | &$ConversionTable[$i]
85: }
86:
87: $Record = [String]::Join($d, $Fields)
88: return $Record
89: }
90:
91: $Results = $Records | Filter-Header | Filter-USToMetricA
92: $Results
93: