Pascal – Zápis do souboru


Tentokrát tu máme něco nového! Práce se soubory je jedním z oblíbených témat, a v Pascalu se jedná o opravdu jednoduchou činnost. Když už máte klasický program a vyladíte ho ještě čtením ze souboru, váš program je o něco bohatší. Tento díl je věnován zápisu do souboru, další článek bude věnován čtení ze souboru. A my si ukážeme jak na to:

Pokud víme co je proměnná a umíme používat příkazy writeln a readln, tak toto by pro nás mělo být jednoduché. Půjdeme na to v jednotlivých krocích, tím bude postup přehlednější.

1. Krok

Nejprve si musíme deklarovat proměnné. Využijeme proměnnou s názvem soubor a přiřadíme jí datový typ text. Datový typ ‚text‚ hraje významnou roli, snažte se jej nepoužívat jako proměnnou. Pro překladač je slovo text datovým typem. Kód tedy bude vypadat takto:

program Zapis;

var soubor: text;

begin

end.

2. Krok

Teď využijeme funkce assign, která slouží k přiřazení konkrétního souboru naší proměnné. Její syntaxe je assign(proměnná, název i s cestou). Ale ještě před tím, než zapíšeme tuto funkci, napíšeme nějakou informační zprávu uživateli, že proběhne zápis do souboru. Vyzveme uživatele ke stisku klávesy pro provedení dalších akcí a bude to vypadat takto:

program Zapis;

var soubor: text;

begin
  writeln('Program zapise informace do souboru ulozenem na disku C:\');
  writeln('Stiskem klavesy Enter potvrdite akci...');
  readln();

  assign(soubor, 'C:\soubor.txt');
end.

Program v tuto chvíli informoval uživatele a přiřadil cestu proměnné soubor.

3. Krok

Teď je zapotřebí připravit soubor pro zápis a následně do něj zapsat informace. Využijeme příkazu rewrite, který zajistí tvorbu nového souboru pokud neexistuje. Upozorňuji, že pokud je cesta k souboru NEPLATNÁ, tak program nevytvoří soubor na zadaném místě a hrozí pád programu. Program neumí vytvořit složku, ale pouze soubor! Přejdeme tedy k inicializaci programu a následně k zápisu informací, k čemu nám postačí běžný příkaz writeln.

program Zapis;

var soubor: text;

begin
  writeln('Program zapise informace do souboru ulozenem na disku C:\');
  writeln('Stiskem klavesy Enter potvrdite akci...');
  readln();

  assign(soubor, 'C:\soubor.txt');
  rewrite(soubor);
  write(soubor, 'Text je v programu!');
  close(soubor);

  writeln('Program provedl zapis...');
  readln();
end.

Doplnil jsem program příkazem close(), který se stará o ukončení zápisu do programu. V tuto chvíli kdy program ukončil zápis se uložil zadaný údaj a program by byl připravený pro další operace např. čtení těchto informací. Po ukončení zápisu se tedy vypíše hlášení o provedení zápisu do souboru a vyčkává na stisk klávesy, poté bude program ukončen.

Ještě vám sem na ukázku přihodím kód, který vyčkává na zadání textu od uživatele a ten poté zapíše, stejně jako v tomto postupu, který jsme si vysvětlili.

program Zapis;

var  soubor: text;
    mujtext: String;

begin
  writeln('Program zapise informace do souboru ulozenem na disku C:\');
  writeln('Stiskem klavesy Enter potvrdite akci...');
  readln();
  writeln('Zadejte vas text, ktery chcete zapsat do souboru:');
  write('-> ');
  readln(mujtext);
  assign(soubor, 'C:\soubor.txt');
  rewrite(soubor);
  write(soubor, mujtext);
  close(soubor);

  writeln('Program provedl zapis...');
  readln();
end.

Program vyčkává na zadání textu od uživatele, zapíše jej do souboru a ukončí program.

Příspěvek byl publikován v rubrice Pascal se štítky , , , , , , , . Můžete si uložit jeho odkaz mezi své oblíbené záložky.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Můžete používat následující HTML značky a atributy: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>