Mam kilka rekordów i jak moge wyznaczony rekord usunac ?? Z gory tnx.
mozesz go wyczyscic i nie uzywac, bo jesli zadeklarowales to tak latwo nie bedzie :)
Jeśli plik nie jest za duży, to możesz skopiować rekordy do pamięci (tablica, albo np. TList), usunąć wybrane rekordy, po czym zapisać ponownie całość.
A znacie jakis inny wygodny sposób na rekordy ?? (Dodawanie i usuwanie).
Było na forum.
Jeśli rekordy są nieposortowane w pliku, to kopiujesz ostatni rekord na miejsce tego do skasowania i skracasz plik o 1.
W przeciwnym wypadku kopiujesz rekord z pozycji k+1 na k, z k+2 na k+1 itd (k=rekord do skasowania). W zaleznosci od wielkosci pliku, wielkosci rekordu i upodoban mozesz to zrobic calkowicie w pamieci (ladujesz plik blockread, przesuwasz move, zapisujesz blockwrite), porcjami po iles rekordow (ladujesz porcje blockread i zapisujesz blockwrite w pozycji wzglednej -1, a potem nastepne porcje), albo po 1 rekordzie - wtedy block niepotrzebne, tylko read i write. Ostatnia wersja jest najwolniejsza, ale najmniej pamieciozerna.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.