Deine Abbruchbedingung ist komplett falsch. Da gehört dringend ein ! davor, weil repeat ausführt
bis Bedingung,
do-while aber
solange die Bedingung wahr ist.
Ich denke, die Funktion müsste so aussehen:
Code:
int FLoadNodes(int ID) {
int i, c;
TNavRes* res;
new(res);
i = -1;
do {
i++;
c = LoadNodes(id, 1);
if (i < c) {
if (ReadNodes(i, res)) {
FLoadNodes(res->ID);
}
}
} while (! ((c == 0) || (i >= c)));
}