Pliki typowane - usuwanie rekordów

0

Mam kilka rekordów i jak moge wyznaczony rekord usunac ?? Z gory tnx.

0

mozesz go wyczyscic i nie uzywac, bo jesli zadeklarowales to tak latwo nie bedzie :)

0

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ść.

0

A znacie jakis inny wygodny sposób na rekordy ?? (Dodawanie i usuwanie).

0

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1