100 likes | 252 Views
Algoritmizace a programování Textové soubory - 13. Mgr. Josef Nožička. IKT Algoritmizace a programování. www.zlinskedumy.cz. Práce se soubory v programu.
E N D
Algoritmizace a programováníTextové soubory - 13 Mgr. Josef Nožička IKT Algoritmizace a programování www.zlinskedumy.cz
Práce se soubory v programu Abychom byli schopni psát programy, které nebudou muset získávat všechna potřebná vstupní data od uživatele a budou rovněž umět trvale uložit na disk svá výstupní data, je třeba naučit se pracovat se soubory. Soubory, tak jak je nejčastěji známe, jsou uloženy na pevném disku (případně na jiném paměťovém médiu). Přistupovat k nim je možno ve dvou režimech: textovém a binárním. Podle toho, který režim používáme, rozlišujeme soubory textové a binární.
Rozdíly mezi textovými a binárními soubory Rozdíl mezi nimi je v tom, jak se data čtou, případně zapisují. Soubory zapsané v textovém režimu jsou normálně pro člověka čitelné, můžeme si je přímo otevřít v některém textovém editoru. Naproti tomu binární soubory nedokáže běžný uživatel přečíst. Dejme si jako příklad proměnnou typu char, do které uložíme číslo 3. V textovém souboru bude číslo vidět jako znak „3", ale zapsané v binárním režimu 8 bitů jako "00000011". Další rozdíl spočívá v tom, že textové soubory jsou členěny na řádky, kdežto binární nikoliv. A konečně, poslední rozdíl je v tom, že textový soubor se prochází sekvenčně, ale ubinárního můžeme pozici následující operace (čtení/zápis) nastavit. Lze tedy říci, že textové soubory jsou příjemnější pro běžného uživatele, avšak programátorovi se většinou lépe pracuje se soubory binárními.
Deklarace textového souboru Datový typ soubor patří mezi strukturované datové typy.Jedná - li se o textový soubor, je deklarace velmi jednoduchá: za příslušnou proměnnou se uvede klíčové slovo text. Příklad: f: text; ch: char; s: string[80]; {proměnné ch a s budou využity při práci se souborem pro čtení a zápis dat}
Příkazy pro textové soubory I. U následujícího přehledu příkazů pro práci s textovými soubory použijeme proměnné, deklarované u příkladuz předchozího snímku (f, ch, s). assignfile(f,‘text.txt‘) - příkaz asociuje proměnnou f s příslušným jménem souboru (není-li před jménem uvedena cesta k souboru, bude se nacházet ve stejné složce jako celý program reset(f) - otevření souboru pro čtení rewrite(f) - otevření souboru pro zápis append(f) - otevření souboru pro doplňování
Příkazy pro textové soubory II. Čtení ze souboru: read(f,ch) - přečte se 1 znak a kurzor se posune o 1 znak doprava readln(f,ch) - přečte se 1 znak a kurzor se posune na začátek dalšího řádku readln(f,s) - přečte se celý řádek (řetězec až 80 znaků) Zápis do souboru: write(f,ch) - zapíše se 1 znak a kurzor zůstane na stejném řádku writeln(f,‘text‘)- zapíše se celý text, uvedený mezi apostrofy, a kurzor se posune na začátek nového řádku (vytvoří se enter)
Příkazy pro textové soubory III. Další užitečné příkazy: eof(f) - funkce, která testuje konec souboru (při konci souboru vrací hodnotu true, v opačném případě false) eoln(f) - funkce, která testuje konec řádku (při konci řádku vrací hodnotu true, v opačném případě false) closefile(f) - uzavření souboru erase(f) - odstranění souboru (pro tento úkon je rovněž možno použít příkaz deletefile) rename(f,‘novy.txt‘) - přejmenování souboru
Textové soubory - příklad Úkolem následujícího programu je zjistit, kolik se v textovém souboru TEXT.TXT nachází velkých písmen. varf:text; ch:char; p:integer; begin assignfile(f,'text.txt'); reset(f); p:=0; while not eof(f) do begin read(f,ch); if (ord(ch)>=65) and (ord(ch)<=90) {nebo if (ch>='A') and (ch<='Z')} then p:=p+1; end; closefile(f); writeln(‘počet velkých písmen =‘,p); end;
Zdroje KADLEC, Václav. Učíme se programovat v Delphi a jazyce Object Pascal. Praha: Computer Press, 2001, ISBN 80-722-6245-9. PÍSEK, Slavoj. Delphi-začínáme programovat: podrobný průvodce začínajícího uživatele. Praha: Grada, 2002, ISBN 80-247-0547-8.