Reputation: 1
I understand that this code is far from perfect and I ask for help how to write it correctly? I have a function in my script for calculating the time difference. How can it be improved or simplified?
function CountIntervals {
param (
[string]$logfile
)
if (Test-Path -Path $logfile) {
$info_line2.Text.Clear
$intervals = New-Object System.Collections.ArrayList
$lines = Get-Content $logfile -Tail 10 -Encoding ansi
foreach ($line in $lines) {
$time = $line.Substring(0, $line.IndexOf(";"))
$intervals += $time
[int64]$wght = (($line -split ";")[2]) -replace "\s"
$err = " - $($wght) $(($line -split ";")[3])"
}
$int9 = ([datetime]$intervals[9] - [datetime]$intervals[8]).TotalSeconds
$int8 = ([datetime]$intervals[8] - [datetime]$intervals[7]).TotalSeconds
$int7 = ([datetime]$intervals[7] - [datetime]$intervals[6]).TotalSeconds
$int6 = ([datetime]$intervals[6] - [datetime]$intervals[5]).TotalSeconds
$int5 = ([datetime]$intervals[5] - [datetime]$intervals[4]).TotalSeconds
$int4 = ([datetime]$intervals[4] - [datetime]$intervals[3]).TotalSeconds
$int3 = ([datetime]$intervals[3] - [datetime]$intervals[2]).TotalSeconds
$int2 = ([datetime]$intervals[2] - [datetime]$intervals[1]).TotalSeconds
$int1 = ([datetime]$intervals[1] - [datetime]$intervals[0]).TotalSeconds
$sum = [math]::Round((($int9+$int8+$int7+$int6+$int5+$int4+$int3+$int2+$int1)/9),2)
$result += "$($int9), $($int8), $($int7), $($int6), $($int5), $($int4), $($int3), $($int2), $($int1), $($sum)"
if ($wght -gt 99999999999) {
$result = @($result, $err)
} elseif (($wght -lt 99999999999) -and ($wght -gt 500)) {
$result = @($result, " - Взвешивание. На весах: $($wght) кг")
}
return $result
}
}
At the input we have a text file with approximately the following contents:
17:16:16; 2; 0; 0; 0; 0; 0;
17:16:21; 2; 0; 0; 0; 0; 0;
17:16:25; 2; 0; 0; 0; 0; 0;
17:16:29; 2; 0; 0; 0; 0; 0;
17:16:33; 2; 0; 0; 0; 0; 0;
17:16:37; 2; 0; 0; 0; 0; 0;
17:16:41; 2; 0; 0; 0; 0; 0;
17:16:45; 2; 0; 0; 0; 0; 0;
17:16:49; 2; 0; 0; 0; 0; 0;
17:16:54; 2; 0; 0; 0; 0; 0;
17:16:58; 2; 0; 0; 0; 0; 0;
17:17:02; 2; 0; 0; 0; 0; 0;
17:17:06; 2; 0; 0; 0; 0; 0;
17:17:11; 2; 0; 0; 0; 0; 0;
The output is a line that looks something like this:
3940838125_1_2025-02-28.log (A) - 4, 4, 4, 5, 4, 4, 4, 4, 4, 4.11
Thanks in advance for your help and tips
Upvotes: 0
Views: 49