zapisywanie rekordow

0

mam taki problem....

probuje zapisac tabliceDBGrid do pliku...
probuje to zrobic w ten sposob ze chce zapisac poszczegolne rekordy
mam cos takiego:

Procedure zapisz(FName:String);//Fname=nazwa pliku
var F:File of TWiersz;
      Wiersz:TWiersz;


      Begin

AssignFile(F,FName);
Rewrite(F);
  repeat
   Wiersz.F:=Form1.DaneKlein[ 'F' ]; 
   Wiersz.V:=Form1.DaneKlein[ 'V' ];
   Wiersz.T:=Form1.DaneKlein[ 'T' ];
   Write(F,Wiersz);

w ten sposob mam zczytany pierwszy rekord , o ile sie nie mysle
Co nalezy wpisac dalej aby sam progral zliczyl wszystkie rekordy i je zapisal....pomocy!!!

0

No to masz problem. Nie napisałeś co to jest to TWiersz.

Możesz sprubować do zapisywania danych wykorzystać pliki ini.
Jako główny klucz wykorzystujesz nr kloumny a jako podklucz nr wiersza.
I jeżeli dana komurka t wabeli nie jest pusta to ją w ten sposób zapisujesz. Nie będziesz mieć dzięki temu problemów z odczytaniem. To tylko taka rada.

0

Musisz to robić w pętli. nie mam teraz ptzy sobie żadnego przykładu ale powinno to wyglądać mniej więcej tak:

  1. Pobierasz rozmiar tabeli (dane w DBGridie są pobierane z tabeli) - funkcja RecordCount;
  2. następnie rozpoczynasz petlę:
while not eof (tabela) do
              begin
                 //tu procedura pobierająca dane z rekordu tabeli i zapisująca do pliku
              end;

100% gwarancji że skopiujesz wszystkie rekordy.

0

dzieki dobra, powiedzmy ze chce to zrobic tak jak napisales ....z punktem 2 sobie poradze z ta petla, gorzejz punktem pierwszym, jak pobrac rozmiar tabeli???
dzieki z gory

0

Przecież napisałem: funcja RecordCount pobiera ilość rekordów z tabeli (ile := TTable.RecordCount;)

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