Turbo Pascal - 10. lekce
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama

Turbo Pascal - 10. lekceTurbo Pascal - 10. lekce

 
Hledat
Moderní platforma pro vytvoření vašeho nového webu – Wix.com.
Nyní už můžete mít web zdarma.
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno

Turbo Pascal - 10. lekce

Google       Google       14. 2. 2006       35 105×

Posledně jsme si vysvětlili, jak shromažďovat proměnné a tím si ulehčit práci. Naučili jsme se velmi potřebné metody pro práci se soubory a právě to si vysvětlíme dnes.

Reklama
Reklama

Nejdřív si povíme, jaké Pascal rozlišuje soubory.


Jsou to tyto tři typy:

  • Textové soubory - Text se ukládá ve ,,srozumitelné" podobě člověku a výsledný soubor má stejnou podobu jako normální textový soubor vytvořený v poznámkovém bloku.
  • Typové soubory - Typový soubor nepřečtete bez znalosti použitých proměnných v programu. Do souboru se ukládají veškeré informace o proměnných, proto soubor není ukládaný srozumitelně člověku.
  • Netypové soubory - Asi nejméně používaný formát, do kterého se může uložit cokoliv jakéhokoliv datového typu.

Je nutno dodržovat základní postup práce se soubory:

  • Přiřazení jména souboru
  • Otevření souboru
  • Práce se souborem
  • Uzavření souboru

Měli byste dodržovat pravidlo, že při práci se souborem nebudete otevírat více než dva soubory. Pokud budete pracovat se soubory ihned po ukončení operací, soubor uzavřete! Při otevírání každé počáteční operace se souborem použijte funkci pro ověření přístupnosti souboru.

Dva základní příkazy, jak si jistě domyslíte, jsou pro všechny stejné: pro přiřazení jména souboru a uzavření souboru. Pro přiřazení jména souboru se používá příkaz Assign(nazev_promenne,'Cesta k souboru'); a pro uzavření souboru Close(prirazene_jmeno_souboru);


Textové soubory

Krok po kroku si nyní ukážeme, jak pracovat s textovým souborem. Naprogramujeme si například hru a chceme uložit výsledné skóre do tabulky. Uložení skóre by bylo naprogramováno ve hře jako podprogram, ale já ho jako příklad napíšu jako samostatný program.

Prvním krokem je deklarace proměnné, která nám bude simulovat soubor. Deklaraci provádíme za slůvkem var takhle:


Program skore;
uses crt;
var i,body,vypis:integer;
    soubor:Text;
Begin   
End.

Druhý bod pustupu bude přiřazení jména souboru. Jak jsem výše napsal, provádí se příkazem Assign:


Program skore;
uses crt;
var i,body,vypis:integer;
    soubor:Text;
Begin   
  Assign(soubor,'C:\Hra\Skore.txt');
End.

Přiřazením jména souboru ho neotevíráte ani neprovádíte jinou operaci. Dokonce ani není nutné, aby tento soubor existoval. Prostě jen do proměnné přiřadíte cestu. Pokud máte soubor ve stejném adresáři jako program samotný, stačí napsat do uvozovek pouze jeho název: Assign(soubor,'Skore.txt'); . Platí také, že přípona souboru nemusí být nutně txt, ale příponu si můžete zvolit jakoukoli chcete.

Dalším krokem pro práci s textovým souborem je jeho otevření. Zde už je to složitější, protože musíte vědět. co chcete se souborem udělat. Metody otevření jsou:

  • Rewrite - Pokud soubor na disku existuje, potom se otevře a přepíše se novými daty.
  • Append - Otevření souboru na pozici posledního řádku pro zápis (přidávání do souboru).
  • Reset - Otevření souboru POUZE pro čtení.

Pro naše účely bude jasně nejlepší volba Append. Do souboru budeme připisovat stále nové skóre. Otevřeme si tedy soubor:


Program skore;
uses crt;
var i,body,vypis:integer;
    soubor:Text;
Begin   
  Assign(soubor,'C:\Hra\Skore.txt');
  Append(soubor);
End.

Nyní máme otevřený soubor na jeho konci připravený pro zápis. Na začátku jsem zmínil, že musíme při otevírání souboru a dalších operací zkontrolovat, zda je soubor dostupný. Proto přidáme pár řádků k našemu programu:


Program skore;
uses crt;
var i,body,vypis:integer;
    soubor:Text;
Begin   
  Assign(soubor,'C:\Hra\Skore.txt');
  {$I-}   (* Vypnutí vnitřní kontroly chyb *)
    Append(soubor);
    if IOResult<>0 then Rewrite(soubor);  (* Ověření dostupnosti souboru *)
  {$I+}  (* Znovu zapnutí vnitřní kotroly chyb *)
End.

Máme otevřený soubor i s ověrením a můžeme se pustit do zapsání skóre.

Pro zapisování do souboru se používá ten samý příkaz jako pro výpis na obrazovku jen v trošku pozměněném tvaru: Writeln(nazev_souboru,co_chceme zapsat);

Můžeme zapisovat samozřejmě jak příkazem Write, tak příkazem Writeln. Rozdíl je stejný jako ve výstupu na obrazovku. Toto se rozlišuje až u typových souborů. Nyní si tedy proměnnou body zapíšeme do souboru. Soubor máme otevřený pro zápis na poslední pozici, tzn. pro přidávání do souboru, a proměnnou zapíšeme příkazem Writeln, aby byl soubor přizpůsoben pozdějšímu čtení:


Program skore;
uses crt;
var i,body,vypis:integer;
    soubor:Text;
Begin   
  Assign(soubor,'C:\Hra\Skore.txt');
  {$I-}   
    Append(soubor);
    if IOResult<>0 then Rewrite(soubor); 
  {$I+}  
  Writeln(soubor,body);
End.

Máme tedy zapsána data a chtěli bychom je dostat zpět. Čtení se, stejně jako zapisování, provádí standardním, trochu pozměněným příkazem Read (nazev_soboru,promenna_do_ktere_cteme); . Musíme mít ovšem na paměti, že máme soubor otevřen pro zadávání na konec, proto musíme soubor uzavřít a otevřít ho pro čtení:


Program skore;
uses crt;
var i,body,vypis:integer;
    soubor:Text;
Begin   
  Assign(soubor,'C:\Hra\Skore.txt');
  {$I-}   
    Append(soubor);
    if IOResult<>0 then Rewrite(soubor); 
  {$I+}  
  Writeln(soubor,body);
  Close(soubor);
  Reset(soubor); 
End.

U otevření pro čtení bychom opět měli zapsat kontrolu dostupnosti souboru, ale v tomto případě tam není potřebná. Kontrola je potřebná jen tehdy, když to dá logiku. To už nechám na vás. Přečteme si tedy informace ze souboru a vypíšeme je na obrazovku:


Program skore;
uses crt;
var i,body,vypis:integer;
    soubor:Text;
Begin   
  Assign(soubor,'C:\Hra\Skore.txt');
  {$I-}   
    Append(soubor);
    if IOResult<>0 then Rewrite(soubor); 
  {$I+}  
  Writeln(soubor,body);
  Close(soubor);
  Reset(soubor); 
  Repeat
    Readln(soubor,vypis);
    Writeln(vypis);
  until eof(soubor);
  close(soubor);
  readkey;
  End.

Jistě jste si všimli, že v podmínce cyklu jsem použil zvláštní, vám dosud neznámý, příkaz. Pojďme si tedy několik těchto příkazů vysvětlit.

  • Eoln(nazev_souboru) - End of Line. Zjistí, jestli se nacházíte na konci řádku a vrací hodnotu True nebo False.
  • Eof(nazev_souboru) - End of File. Zjistí, jestli se nacházíte na konci souboru.
  • Erase(nazev_souboru) - Smazání souboru z disku.
  • Rename(nazev_souboru,novy_nazev) - Přejmenování souboru

Takto si lze snadno obstarat obsluhu textových souborů se vším všudy. Dnes jsme toho probrali dost, typové a netypové soubory si necháme na příště.


Domácí úkol

Zadání dnešního úkolu bude jednoduché, ale výsledkem vaší práce bude takřka profesionální program. Udělejte mi jednoduchou hru, která bude obsahovat menu se třemi prvky. Nová hra, Tabulka skóre, Konec. Přes toto úvodní menu už pokračování nechám na vás. Pod novou hrou naprogramujete pomocí příkazů, které již znáte, nějakou jednoduchou hru, která po dohrání vyzve k vložení přezdívky a uloží přezdívku a skóre do souboru. Pod tabulkou skóre bude pouze výpis ze souboru a nějaký ten design (například Nick.......skóre). Jelikož menu musíte řešit příkazem CASE, tak pod položkou konec bude jediný přikaz: Exit;

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
Autor programuje v Pascalu.

Nové články

Obrázek ke článku Pracujete u počítače ve stoje? Dbejte na správné držení těla

Pracujete u počítače ve stoje? Dbejte na správné držení těla

Práce ve stoje je jedna z variant, jak změnit polohu těla při dlouhodobé práci u počítače. Především je důležité nezapomínat na správné držení těla, abychom při práci nenamáhali naší krční páteř. Primářka MUDr. Michaela Tomanová představí hlavní bonusy a rizika práce u počítače ve stoje.

Reklama
Reklama
Obrázek ke článku Firmy musejí s nástupem Průmyslu 4.0 více dbát na kyberbezpečnost. V ohrožení je i jejich know-how.

Firmy musejí s nástupem Průmyslu 4.0 více dbát na kyberbezpečnost. V ohrožení je i jejich know-how.

Destabilizace firmy či ukradené know-how. To jsou možná hlavní budoucí rizika spojená s nedostatečnou kybernetickou bezpečností průmyslových firem, na která upozorňují experti. Vzhledem k postupující digitalizaci výrobních či technologických procesů a přechodu k takzvanému Průmyslu 4.0 může těchto hrozeb postupně přibývat. Varují před nimi i nejnovější průzkumy. 

Obrázek ke článku Nový CEBIT je připraven: Pochopit digitální dnešek a objevit digitální zítřek

Nový CEBIT je připraven: Pochopit digitální dnešek a objevit digitální zítřek

Nový veletrh  CEBIT je připraven. V polovině června začne v Hannoveru evropský festival obchodu s radikálně změněnou koncepcí věnovaný inovacím a digitalizaci.  CEBIT jedinečnou formou spojuje obchod v digitálním hospodářství 
s festivalovými prvky a posouvá do středu pozornosti téma digitální transformace hospodářství a společnosti.  

Obrázek ke článku Black Swan Security Congress ukáže, jak se chránit před největšími hrozbami na internetu

Black Swan Security Congress ukáže, jak se chránit před největšími hrozbami na internetu

Dva dny plné přednášek a diskusí na téma často podceňovaných bezpečnostních rizik na internetu pořádá Paralelní polis v pražských Holešovicích. Akce s názvem Black Swan Security Congress bude od pátku 18. do soboty 19. května hostit etické hackery a experty na IT bezpečnost převážně z Česka a Slovenska. Ti účastníkům vysvětlí, jaká rizika nese fenomén „černé labutě a jak se před ním mohou chránit.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032018 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý