RosettaCodeData/Task/Text-processing-2/Aime/text-processing-2.aime
2018-06-22 20:57:24 +00:00

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;
}