180 likes | 306 Views
Kód ITMS projektu: 26110130519 Gymnázium Pavla Jozefa Šafárika – moderná škola tretieho tisícročia. Textové súbory I. Súbor. skupina údajov uložených pomocou počítača, ktoré majú meno; obsah uložený mimo operačnej pamäte. Použitie: načítanie vstupov z externého súboru.
E N D
Kód ITMS projektu: 26110130519 Gymnázium Pavla Jozefa Šafárika – moderná škola tretieho tisícročia Textové súbory I.
Súbor • skupina údajov uložených pomocou počítača, ktoré majú meno; • obsah uložený mimo operačnej pamäte. Použitie: • načítanie vstupov z externého súboru. • uloženie výsledkov spracovania údajov.
S akým typom súboru budeme pracovať? Textový súbor riadky obsahujúce • znaky, • slová, • vety. Výhoda: Jednoduché vytváranie, editovanie, prezeranie v ľubovoľnom systémovom editore.
Značky v textovom súbore <Eoln> označenie konca riadku <Eof> označenie konca súboru
Čo sa naučíme? • Vytvoriť /zapisovať do súboru. • Čítať a spracúvať obsah súboru. • Vypísať obsah súboru.
Sprístupnenie obsahu súboru • Bežiaci program je uložený v OP. • Textový súbor je uložený na disku. • Premenná typu TextFile sprístupňuje obsah súboru bežiacemu programu. Deklarácia: Napr. var f: TextFile ; ...
Priradenie súboru premennej AssignFile(meno_premennej_typu_TextFile, cesta_k_suboru) var f: TextFile; begin AssignFile(f, cesta_k_suboru) ; .... end;
Manipulácia so súborom Zo súboru sa nedá naraz čítať aj doňho zapisovať. Hneď po priradení súborovej premennej súboru pripravíme súbor na: • čítanie alebo • vytvorenie a zápis alebo • zápis do existujúceho súboru.
Ukončenie práce so súborom CloseFile(meno_premennej_typu_TextFile)
Otvorenie súboru na čítanie reset(meno_premennej_typu_TextFile) Procedúra, ktorá otvorí súbor na čítanie. READ(LN)(f,p) , READ(LN)(f,p1 , p2 , ...pn) • Procedúry, ktoré zo súboru otvoreného na čítanie prečítajú 1 znak, resp. niekoľko znakov. • Po prečítaní kurzor zostáva v tom istom riadku (read) alebo sa presunie do ďalšieho riadku (readln)
Príklad 1. Zo súboru znak.txt prečítajte 1. znak a vypíšte ho do komponentu Memo1. Predpokladajte, že súbor existuje a je uložený v rovnakom priečinku ako projekt.
Riešenie ... var f: TextFile; c: char; begin AssignFile(f,‘znak.txt‘); Reset(f); Read(f,c); Memo1.Lines.Add(c); CloseFile(f); end;
Úlohy I. • Upravte riešenie Príkladu 1. tak, aby boli prečítané a vypísané prvé 2 znaky zo súboru. • Zo súboru prečítajte prvých desať znakov. • Zo súboru čítajte nasledovne: • z 1. riadku 1 znak • z 2. riadku 2 znaky • z 3. riadku 3 znaky
Čítanie celého obsahu súboru • pomocou príkazu cyklu s podmienku na začiatku; • podmienka obsahuje funkciu Eof(meno_premennej_typu_TextFile) ; • funkcia Eof(...) je typu boolean; • vráti hodnotu „True“, ak sa ukazovateľ nachádza na konci súboru.
Príklad 2. • Zo súboru vety.txt prečítajte celý obsah a prepíšte ho do komponentu Memo1. • Dodržte odseky v pôvodnom dokumente. • Predpokladajte, že súbor existuje a je uložený v rovnakom priečinku ako projekt.
Úlohy II. V súbore znaky.txt: • spočítajte medzery; • zistite počet riadkov; • zistite počet znakov najdlhšieho riadku; • spočítajte počet slov najdlhšieho riadku; • vypíšte najdlhší riadok na obrazovk;u • vypíšte na obrazovku riadok, v ktorom sa nachádza najviac slov.
Riešenie ... var f: TextFile; riadok: string; begin AssignFile(f,‘vety.txt‘); Reset(f); Readln(f,riadok); //čítame po celých riadkoch Memo1.Lines.Add(riadok); CloseFile(f); end;
Použité zdroje • http://www.gympd.sk/~jaro/pascal/subortxt/index.html • http://www.programovanie.kromsat.sk/prog-b/s24.htm