61 lines
1,023 B
Text
61 lines
1,023 B
Text
void
|
|
check_format(list l)
|
|
{
|
|
integer i;
|
|
text s;
|
|
|
|
if (~l != 49) {
|
|
error("wrong number of fields");
|
|
}
|
|
|
|
s = l[0];
|
|
if (~s != 10 || s[4] != '-' || s[7] != '-') {
|
|
error("bad date format");
|
|
}
|
|
l[0] = atoi(delete(delete(s, 7), 4));
|
|
|
|
i = 1;
|
|
while (i < 49) {
|
|
l[i] = atof(l[i]);
|
|
i += 1;
|
|
l[i] = atoi(l[i]);
|
|
i += 1;
|
|
}
|
|
}
|
|
|
|
integer
|
|
main(void)
|
|
{
|
|
integer goods, i, v;
|
|
file f;
|
|
list l;
|
|
index x;
|
|
|
|
goods = 0;
|
|
|
|
f.affix("readings.txt");
|
|
|
|
while (f.list(l, 0) != -1) {
|
|
if (!trap(check_format, l)) {
|
|
if (x.key(v = lf_pick(l))) {
|
|
v_form("duplicate ~ line\n", v);
|
|
}
|
|
|
|
x[v] = 0;
|
|
i = 1;
|
|
while (i < 48) {
|
|
if (l[i] < 1) {
|
|
break;
|
|
}
|
|
i += 2;
|
|
}
|
|
if (48 < i) {
|
|
goods += 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
o_(goods, " good lines\n");
|
|
|
|
return 0;
|
|
}
|