50 lines
1.4 KiB
Lua
50 lines
1.4 KiB
Lua
filename = "readings.txt"
|
|
io.input( filename )
|
|
|
|
file_sum, file_cnt_data, file_lines = 0, 0, 0
|
|
max_rejected, n_rejected = 0, 0
|
|
max_rejected_date, rejected_date = "", ""
|
|
|
|
while true do
|
|
data = io.read("*line")
|
|
if data == nil then break end
|
|
|
|
date = string.match( data, "%d+%-%d+%-%d+" )
|
|
if date == nil then break end
|
|
|
|
val = {}
|
|
for w in string.gmatch( data, "%s%-*%d+[%.%d]*" ) do
|
|
val[#val+1] = tonumber(w)
|
|
end
|
|
|
|
sum, cnt = 0, 0
|
|
for i = 1, #val, 2 do
|
|
if val[i+1] > 0 then
|
|
sum = sum + val[i]
|
|
cnt = cnt + 1
|
|
n_rejected = 0
|
|
else
|
|
if n_rejected == 0 then
|
|
rejected_date = date
|
|
end
|
|
n_rejected = n_rejected + 1
|
|
if n_rejected > max_rejected then
|
|
max_rejected = n_rejected
|
|
max_rejected_date = rejected_date
|
|
end
|
|
end
|
|
end
|
|
|
|
file_sum = file_sum + sum
|
|
file_cnt_data = file_cnt_data + cnt
|
|
file_lines = file_lines + 1
|
|
|
|
print( string.format( "%s:\tRejected: %d\tAccepted: %d\tLine_total: %f\tLine_average: %f", date, #val/2-cnt, cnt, sum, sum/cnt ) )
|
|
end
|
|
|
|
print( string.format( "\nFile:\t %s", filename ) )
|
|
print( string.format( "Total:\t %f", file_sum ) )
|
|
print( string.format( "Readings: %d", file_lines ) )
|
|
print( string.format( "Average: %f", file_sum/file_cnt_data ) )
|
|
print( string.format( "Maximum %d consecutive false readings starting at %s.", max_rejected, max_rejected_date ) )
|