Architektura C++ s důrazem na vývoj .NET prostředí 6.díl Datové proudy

Napsal O webu (») 6. 7. 2008 v kategorii Programování, přečteno: 1170×

DATOVÉ PROUDY

Datové proudy. Práce se soubory.
Formátovaný vstup a výstup je praktický shodný i při práci se soubory. Rozdíl je v hlavičkovém souboru, který musíme k programu připojit a také v označení tříd, pomocí kterých se přístup k souboru realizuje. Jsou to ofstream pro výstup a ifstream pro vstup. Implicitně práce se vstupním nebo výstupním proudem probíhá v textovém
Hierarchie tříd vztahující se k datovým tokům pro soubory:

Otevření souboru je možné dvěma způsoby:
  • při vzniku objektu (u konstruktoru je uvedena cesta k souboru) a nebo pomocí členské funkce open (v tomto případě je volán implicitní konstruktor bez parametrů).

    Uzavření souboru se obdobně provádí dvěma způsoby:
  • automaticky destruktorem při zániku objektu nebo členskou funkci close.

    Otevření pomocí konstruktoru
    ifstream(const char *name, int mode = ios::in, int =
    filebuf::openprot);
    ofstream(const char *name, int mode = ios::out, int prot =
    filebuf::openprot);
    fstream(const char *name, int mode = ios::in, int prot =
    filebuf::openprot);

    První parametr je cesta k souboru, druhý parametr jsou atributy otevření souboru (viz. tabulka), třetí parametr je pro sdílení souboru.

    Režim popis činnosti

    ios::app Připojuje data na konec souboru
    ios::ate nastaví se na konec souboru
    ios::in při otevření nastaví režim čtení (implicitní pro ifstream)
    ios::out při otevření nastaví režim zápis (implicitní pro ofstream)
    ios::binary otevře soubor v binárním režimu
    ios::trunc pokud soubor existuje, zruší jeho obsah (implicitní je-li ios::out a není buď ios::ate nebo ios::app)
    ios::nocreate otevření se neprovede, pokud soubor neexistuje
    ios::noreplace existuje-li soubor, zhavaruje otevření pro výstup, není-li nastaveno ios::app nebo ios::ate

    Možné parametry pro sdílení:

    filebuf::sh_compact - stejné jako implicitní hodnota
    filebuf::openprot, soubor lze sdílet, pokud to povolí operační systém
    filebuf::sh_none - soubor nelze sdílet
    filebuf::sh_read - soubor lze sdílet jen při čtení
    /*** příklad otevření souboru pomocí konstruktoru ***/
    #include <fstream.h>
    void main(void)
    {
    ofstram of("soubor.dat",ios::out | ios::binary);
    if (of != 0)
    {
    float f;
    for (int i = 0; i<50, i++)
    {
    f=i*i;
    of.write((const char *)&f, sizeof(f) );
    //neformátovan zápis
    }
    of.close( );
    }
    }
    /***************** konec *******************/

    Autor: Filip Koval
  • Štítky: C++/.NET
    Facebook Twitter Topčlánky.cz Linkuj.cz

    Komentáře

    Zobrazit: standardní | od aktivních | poslední příspěvky | všechno
    Článek ještě nebyl okomentován.


    Nový komentář

    Téma:
    Jméno:
    Notif. e-mail *:
    Komentář:
      [b] [obr]
    Odpovězte prosím číslicemi: Součet čísel tři a tři