BINARNE DATOTEKE U PASCALU Ponavljanje tekstualna datoteka niz

  • Slides: 17
Download presentation
BINARNE DATOTEKE U PASCALU

BINARNE DATOTEKE U PASCALU

Ponavljanje – tekstualna datoteka � niz znakova organiziranih u redove � datoteku možemo otvoriti

Ponavljanje – tekstualna datoteka � niz znakova organiziranih u redove � datoteku možemo otvoriti bilo kojim programom za rad s tekstom � čitamo redom od početka do kraja datoteke � procedure read, readln, writeln pomiču pokazivač na sljedeći znak ili početak sljedećega reda

Ponavljanje – tekstualna datoteka

Ponavljanje – tekstualna datoteka

Binarna datoteka � datoteka u koju spremamo niz istovrsnih podataka � podaci u datoteci

Binarna datoteka � datoteka u koju spremamo niz istovrsnih podataka � podaci u datoteci imaju isti oblik kao podaci u memoriji � nije čitljiva u tekst editoru

Organizacija datoteke Početak datoteke Pokazivač Kraj datoteke Prva Druga … komponenta 0. mjesto 1.

Organizacija datoteke Početak datoteke Pokazivač Kraj datoteke Prva Druga … komponenta 0. mjesto 1. mjesto 2. mjesto … Zadnja komponenta

Deklaracija varijable Var f : file of tip podataka koje spremamo; x : tip

Deklaracija varijable Var f : file of tip podataka koje spremamo; x : tip podataka koje spremamo; Primjer: var f: file of integer; x: integer; Početak datoteke 7 Kraj datoteke 8 9 17 … 67

Procedure i funkcije � Procedure: �assign(f, put); �rewrite(f); �reset(f); �close(f); �read(f, x); �write(f, x);

Procedure i funkcije � Procedure: �assign(f, put); �rewrite(f); �reset(f); �close(f); �read(f, x); �write(f, x); �seek(f, n); - postavlja pokazivač na mjesto s oznakom n

Procedure i funkcije � Funkcije: �eof(f) �filesize(f) – vraća broj komponenata �filepos(f) – vraća

Procedure i funkcije � Funkcije: �eof(f) �filesize(f) – vraća broj komponenata �filepos(f) – vraća trenutačnu vrijednost pokazivača (oznaku mjesta na kojem se nalazi)

Zadatak Igrač u svakom pokušaju sprema postignute bodove u (binarnu) datoteku. A) Na kraju

Zadatak Igrač u svakom pokušaju sprema postignute bodove u (binarnu) datoteku. A) Na kraju tjedna program ispisuje sve postignute bodove i broj pokušaja. B) Najveće postignute bodove i u kojem pokušaju su ostvareni.

A) Ispis svih spremljenih bodova var f: file of integer; x: integer; begin assign(f,

A) Ispis svih spremljenih bodova var f: file of integer; x: integer; begin assign(f, 'd: bodovi'); reset(f); while not(eof(f)) do begin read(f, x); write(x, ' '); end; close(f); readln; end. ili

A) Ispis svih spremljenih bodova var f: file of integer; x, i: integer; begin

A) Ispis svih spremljenih bodova var f: file of integer; x, i: integer; begin assign(f, 'd: bodovi'); reset(f); for i: =1 to filesize(f) do begin read(f, x); write(x, ' '); end; close(f); readln; end.

Izlazni ekran

Izlazni ekran

U skladu s tekstom zadatka var f: file of integer; x, i: integer; begin

U skladu s tekstom zadatka var f: file of integer; x, i: integer; begin assign(f, 'd: bodovi'); reset(f); for i: =1 to filesize(f) do begin read(f, x); writeln(i, ’. pokusaj: ’, x); end; close(f); readln; end.

B) Najveći bodovi

B) Najveći bodovi

B) Najveći bodovi assign(f, 'd: bodovi'); reset(f); rbr_max: =0; read(f, max); for i: =1

B) Najveći bodovi assign(f, 'd: bodovi'); reset(f); rbr_max: =0; read(f, max); for i: =1 to filesize(f)-1 do begin read(f, x); if x>max then begin max: =x; rbr_max: =filepos(f); end; writeln('Broj pokusaja: ', rbr_max); write('Ostvareni bodovi: ', max); close(f);

Zadaci 2 1. Nacrtana je datoteka: 7 8 9 11 45 23 21 54

Zadaci 2 1. Nacrtana je datoteka: 7 8 9 11 45 23 21 54 63 74 98 72 31 EOF Na kojem mjestu se nalazi pokazivač nakon izvođenja instrukcije seek(f, 5); ? Na kojem mjestu se nalazi pokazivač nakon izvođenja instrukcije seek(f, filesize(f)-3); ? Na kojem mjestu se nalazi pokazivač nakon izvođenja instrukcije seek(f, filesize(f) div 2); ? Na kojem mjestu se nalazi pokazivač nakon izvođenja instrukcije seek(f, 1); ?