150 likes | 301 Views
Predmet: Informatika 1 Téma: Údajový typ súbor (Digitálny prezentačný materiál). Vypracoval: Mgr. Ondrej Kostelník. Zopakujme si jednorozmerné pole. Definujte údajový typ jednorozmerné pole? Definujte premennú typu pole? Prostredníctvom čoho pristupujeme ku položkám poľa?.
E N D
Predmet: Informatika 1 Téma: Údajový typ súbor (Digitálny prezentačný materiál) Vypracoval: Mgr. Ondrej Kostelník
Zopakujme si jednorozmerné pole Definujte údajový typ jednorozmerné pole? Definujte premennú typu pole? Prostredníctvom čoho pristupujeme ku položkám poľa?
Použitie typu súbor • Tento údajavý typ využívame vtedy, ak chceme ukladať údaje na pevný disk, disketu, virtuálny disk alebo čítať údaje z týchto médií. Každý takýto súbor v pascale je určitého typu. • to znamená, že doň môžeme ukladať iba informácie rovnakého typu.(integer, char,...) • Samotný prístup na disk riadi operačný systém, preto sa programátor nemusí zaoberať vlastnosťami použitého nosiča dát. Každý súbor je označený názvom a cestou k disku.
Typy súborov • Súbory sa delia podľa použitia riadiacich znakov na: • textové • netextové s udaným typom • netextové bez udania typu
Deklarovanie premennej typu súbor Var <identifikátor_prem>: text ; alebo file of typ; identifikátor_premennej názov objektu, ktorý vytvárame v pamäti. • Príklad type SuborRealnychCisel: file of real; • SuborZnakov: file of char; • SuborMalychMnozin: file of [1..10]; • var TextovySubor: text; alebo var TextovySubor: file of char; • var Rcisla: SuborRealnychCisel; • var ZZZ: SuborZnakov; • Subor: file; (všeobecný súbor) • SuborCisel: file of real;
Procedúry a funkcie pre prácu so súbormi Práca so súbormi je závislá od operačného systému. Preto môžu byť rôzne procedúry a funkcie pre rôzne implementácie pascalu. V Turbo Pascale sú tieto: • procedure assign (var subor;Nazov:string);- vytvorí sa prepojenie skutočného súboru s identifikátorom subor. Identifikátor sa využíva na prístup k súboru na disku. • procedure rewrite(var subor); - spôsobi vytvorenie nového súboru alebo v prípade, že súbor existuje, zruší jeho starý obsah. • procedure reset (var subor);- nastavenie aktuálnej pozície na začiatok súboru na jeho čítanie.
Procedúry a funkcie pre prácu so súbormi Práca so súbormi je závislá od operačného systému. Preto môžu byť rôzne procedúry a funkcie pre rôzne implementácie pascalu. V Turbo Pascale sú tieto: • procedure append(var subor:text);- (možná iba u textových súborov) aktuálna pozícia v súbore je automaticky nastavená na poslednú pozíciu. To platí vtedy, ak súbor neobsahuje znak #26 – EOF – koniec súboru. Ak áno je aktuálna pozícia na tomto znaku a ten sa prepíše novým zápisom.Pri zavretí súboru sa znak EOF zapíše automaticky. • procedure close(var subor); - uzavretie súborov každého typu.
Procedúry a funkcie pre prácu so súbormi • funkcia FileSize(subor);- funkcia udávajúca velkosť netextového súboru, t.j. číslo poslednej položky v súbore. Číslovanie začína od nuly. • procedúra Seek(subor,velkost); - nastaví súbor na poslednú položku • procedúra Erase(subor); - vymaže daný súbor • funkcia Eof(subor); - end of file testuje koniec súboru. Jej výsledkom je true ak bol prečítaný znak konca súboru s kódom #26. • funkcia Eoln(subor); - (end of line) testuje koniec riadku. Jej výsledkom je true, ak bol prečítaný znak konca riadka s kódom #13 alebo #10.
Čítanie textového súboru: • Častopotrebujemepritestovaníprogramovzadávaťmnohoúdajov z klávesniceprikaždomtestovaníprogramu. Aby smetonemuselipočastestovanianiekoľkokrátopakovať, použijemezadanieúdajovprečítanímtextovéhosúboru z disku, ktorý si predtýmpripravíme. • Jehočítanieurobímenasledovnýmspôsobom:
Čítanie textového súboru: • {Program s procedurou "zobraz" ktorazobraziobsahtextoveho • suborunaobrazovku.} • program VypisNaObrazovku; • uses crt; • varmenosubru:string; • Procedure zobraz(menosub:string); • varznak:char; • s:text; • begin • assign(s,menosub); • reset(s);
Čítanie textového súboru: • while not(eof(s)) do begin • while not(eoln(s)) do begin • read(s,znak); • write(znak); • end; • readln(s); • writeln; • close(s); • end; • BEGIN • writeln('Zadaj nazov suboru'); • readln(menosuboru); • clrscr; • zobraz(menosuboru); • readln; • END.
Vytvorenie (zápis do) textového súboru • program Vytvor_subor; • uses crt; • var menosub:string; • znak:char; • s:text; • begin • assign(s,'menosubo.pas'); • rewrite(s); • writeln('Zapis text suboru(ukonc - ESC):'); • repeat • read(znak); • write(s,znak); • until znak='.'; • close(s); • end.
Úlohy Napíšte program na spojenie dvoch textových súborov. Napíšte program na nahradenie slov v textovom súbore iným slovom. Napíšte program, ktorý zistí počet riadkov v zadanom súbore.