gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
uredjivanje glave o modulu FIO
authorDoni Pracner <quinnuendo@gmail.com>
Sat, 15 Feb 2014 17:30:02 +0000 (18:30 +0100)
committerDoni Pracner <quinnuendo@gmail.com>
Sat, 15 Feb 2014 17:30:02 +0000 (18:30 +0100)
skripta-spa1-sadrzaj.tex

index 585798d402a33e48497476f025b8dce799505c6c..d9f8e1969b9b8063b499120717aec0c74b85cf41 100644 (file)
@@ -576,42 +576,65 @@ U ovom modulu je definisan tip \kod{File}, koji predstavlja jedan fajl
 sa kojim radimo. Da bi ga koristili moramo ga uvesti u program (isto
 kao što uvozimo i komande).
 
-\begin{quote}U primerima se pretpostavlja da je ``f'' tipa \kod{File}, ``str'' niz
-znakova, ``i'' tipa \kod{INTEGER}, ``c'' tipa \kod{CARDINAL} i ``ch''
-tipa \kod{CHAR}. Dodatna promenljiva ``n'' tipa \kod{INTEGER} služi za
-formatiranje slično kao u modulu \kod{InOut}.
-\end{quote}
+\emph{U primerima se pretpostavlja da je ``f'' tipa \kod{File},
+  ``str'' niz znakova, ``i'' tipa \kod{INTEGER}, ``c'' tipa
+  \kod{CARDINAL} i ``ch'' tipa \kod{CHAR}. Dodatna promenljiva ``n''
+  tipa \kod{INTEGER} služi za formatiranje slično kao u modulu
+  \kod{InOut}, odnosno za ispis će biti zauzeto bar ``n'' znakova.}
+
+
+Ako otvaramo već postojeći fajl, poželjno je prvo proveriti da li on
+postoji -- u suprotnom naš program će se srušiti pri izvršavanju.
+Funkcija \kod{Exists(str)} vraća da li fajl postoji.
 
 Promenljiva tipa \kod{File} se mora vezati za neki fajl
 jednom od sledećih komandi:
 \begin{itemize}
-\item \kod{f := Open(str);} -- otvara se postojeci fajl za čitanje\\
-\item \kod{f := Create(str);} -- kreira se fajl za pisanje\\
+\item \kod{f := Open(str);} -- otvara se postojeci fajl za čitanje
+\item \kod{f := Create(str);} -- kreira se fajl za pisanje; ako je već
+  postojao, biće zamenjen
 \item \kod{f := Append(str);} -- otvara se postojeći fajl za
   dopisivanje na kraj
 \end{itemize}
 
-Po završetku rada fajl se mora zatvoriti, u našem primeru to bi bilo
-\kod{Close(f);}
+Po završetku rada fajl se mora zatvoriti, u našem primeru to bi bilo:
+\begin{itemize}
+\item \kod{Close(f);}
+\end{itemize}
 
 Procedure za čitanje i pisanje su vrlo slične onima iz modula
 \kod{IO}, osim što imaju dodatni parametar „\kod{f}“ koji označava
 fajl sa kojim se radi.
 \begin{itemize}
-\item \kod{RdStr(f,str)} -- učitava ceo red u string str\\
-\item   \kod{RdItem(f,str)} -- učitava jednu reč u string str (učitava znakove iz fajla dok ne naiđe na separator)\\
-\item   \kod{i:= RdInt(f); c:= RdCard(f)} -- učitava broj, koji se dobija kao rezultat procedure\\
+\item \kod{RdStr(f,str)} -- učitava ceo red u string str
+\item \kod{RdItem(f,str)} -- učitava jednu reč u string str (učitava
+  znakove iz fajla dok ne naiđe na separator)
+\item \kod{i:= RdInt(f); c:= RdCard(f)} -- učitava broj, koji se
+  dobija kao rezultat procedure
 \item   \kod{ch:= RdChar(f)} -- vraća jedan znak iz fajla
 \end{itemize}
 
+Bitno je obratiti pažnju na specifičnost da postoje dve komande za
+čitanje stringova iz fajla i da se one ponašaju različito.  Budući da
+razmak spada u separatore to znači da se korišćenjem \kod{RdItem} ne
+može učitati string koji ima u sebi razmake.
+
 Analogne su i procedure za pisanje različitih tipova u fajl:
 \begin{itemize}
-\item \kod{WrStr(f,str); WrInt(f,i,n);}\ \kod{WrCard(f,c,n);}\
-  \kod{WrChar(f,ch);}
+\item \kod{WrStr(f,str);}
+\item \kod{WrInt(f,i,n);}
+\item \kod{WrCard(f,c,n);}
+\item \kod{WrChar(f,ch);}
 \end{itemize}
 
+Treba primetiti da ne postoje dve komande za ispis stringa u fajl --
+potpuno je svejedno da li on ima razmake u sebi ili ne.
+
+Prelom reda se eksplicitno upisuje u fajl komandom
+\begin{itemize}
+\item \kod{WrLn(f);}.
+\end{itemize}
 
-Prelom reda se eksplicitno upisuje u fajl komandom \kod{WrLn(f);}.
 
 Da bi odredili da li smo stigli do kraja fajla možemo koristiti
 \kod{EOF}. U pitanju je logička promenljiva koja se uvozi iz modula
@@ -621,6 +644,7 @@ pri operacijama otvaranja i zatvaranja fajlova, odnosno neće se pri
 tome resetovati na \kod{FALSE}, pa na ovo treba obratiti pažnju pri
 radu.
 
+
 \subsection{Zadatak: ispis sadržaja fajla na ekran}
 
 Potrebno je sve redove iz fajla učitati i ispisati ih na ekran.
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner