Mam głupi problem....
Filtruję tabelę, ustawiam wskaźnik na jej początku (First()) i za pomocą pętli
do
{
if (warunek)
Table1->Delete();
else
Table1->Next();
}
while (!Table1->Eof);
przelatuję po kolei przez wszystkie rekordy, sprawdzając pewien warunek. Problem w tym, że jeśli warunek zostanie spełniony (np. już przy pierwszym rekordzie) to usuwany jest rekord i pętla się kończy jakby był koniec tabeli (a nie jest).
Wstawiałem tam Next() zamiast Delete() i chodzi dobrze, czyli pętla jest wykonywana tyle razy ile jest rekordów. nie wiadomo dlaczego Delete() powoduje wyjście z pętli (ustawia znacznik końca tablicy?).
Pomóżcie! Mam głupi problem....
Filtruję tabelę, ustawiam wskaźnik na jej początku (First()) i za pomocą pętli
do
{
if (warunek)
Table1->Delete();
else
Table1->Next();
}
while (!Table1->Eof);
przelatuję po kolei przez wszystkie rekordy, sprawdzając pewien warunek. Problem w tym, że jeśli warunek zostanie spełniony (np. już przy pierwszym rekordzie) to usuwany jest rekord i pętla się kończy jakby był koniec tabeli (a nie jest).
Wstawiałem tam Next() zamiast Delete() i chodzi dobrze, czyli pętla jest wykonywana tyle razy ile jest rekordów. nie wiadomo dlaczego Delete() powoduje wyjście z pętli (ustawia znacznik końca tablicy?).
Pomóżcie!