[Delphi] pliki typowane - zapisywanie rekordów

0

hi [cya]

przerabiam pliki typowane - zapisuję do takowego rekord po rekordzie
pytanie

jak można usunąć taki rekord z pliku?

dzięki za re

0

Ja zawsze usuwam dane w nastepujacy sposob:

Tworze plik tymczasowy do ktorego kopiuje rekord po rekordzie z pominieciem tego, ktorego chce usunac i wszystkie te dane przesylam z powrotem na stary plik i kasuje tymczasowy.

Jak bedziesz chcial to napisze procedure.

--
Umiem troche, ale nie wszystko :) a na koncu i tak BLUE SCREEN

0

kopiuje rekord po rekordzie

Uzyj BlockRead i BlockWrite, a nie kopiuj po 1 rekordzie

--
Pawel {Delphi 6 Personal}

Po pierwsze: naciśnij F1

0

no tak ! Programuje juz 2 latka a na to jeszcze nie wpadlem, ale coz...:)

--
Umiem troche, ale nie wszystko :) a na koncu i tak BLUE SCREEN

0

kopiuje rekord po rekordzie

Uzyj BlockRead i BlockWrite, a nie kopiuj po 1 rekordzie

Jeżeli on przerabia pliki typowane w szkole, to prawdopodobnie nie wprowadzono BlockRead i BlockWrite (dopiero przy plikach amorficznych zwykle się to pojawia) i musi operować na Read i Write.

Rozwiązanie Freebird'a jest dobre, lecz ja proponowałbym troszkę inne.
Jeżeli przerabiane pliki nie są zbyt duże, to utwórz tablicę rekordów i zapamiętaj miejsce rekordu:

  1. Odczytaj od razu jak najwięcej rekordów.
  2. Następnie przesuń wskaźnik na miejsce rekordu zapamietanego miejsca (Seek) i zapisz tablicę.
  3. Zapamiętaj położenie w pliku
  4. Przeskocz jeden rekord i -> 1, aż dojdziesz do końca pliku. Potem tylko przytnij plik (Truncate)

--
Jest jeszcze jeden błąd ... :)
--------Oficjalny kanał----------
Service for programmers w IRC:
Kanał: #4programmers
Serwer: warszawa.ircnet.pl
Sieć: POLNet
Port: 6667

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