A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro práci se soubory 13 Verze 2009.01.

Slides:



Advertisements
Podobné prezentace
A1PRG - Programování – Seminář Ing. Michal Typová konverze, oblast platnosti, paměťové třídy 9 Verze
Advertisements

Standardní knihovní funkce pro práci s textovými řetězci
Programování v C jazyku - SEMINÁŘ
Počítače a programování 1 Přednáška 13 Jiří Šebesta.
Programovací jazyk C++
Přednáška 11 Jiří Šebesta
Standardní knihovní funkce: matematika a datum a čas
Základní pojmy v jazyce C
Programování 2 Cvičení 5.
VISUAL BASIC Práce se soubory.
Programování v Pascalu Přednáška 9 RNDr. Hana Havelková.
PHP Práce se soubory v PHP - 13
Práce se soubory. Ukládání dat Textové soubory s jednoduchou strukturou (např..txt a.csv) textové soubory s vnitřní hierarchií (např..xml) Soubory binárního.
Preprocess Úvod do tvorby funkcí Princip preprocesoringu Direktivy preprocesoru Podmíněný překlad Základy tvorby funkcí Zjednodušený popis principu předávaní.
Cvičení 2 Proměnné(jednoduché a složené) a konstanty První program Zápis výrazů.
Programování v C++ Cvičení.
Algoritmizace a programování
Materiály k přednášce Úvod do programování Ondřej Čepek.
( vstupy a výstupy v Matlabu na konzolu [ do Command Windows]
MATLAB® ( Funkce v Matlabu ).
Operátory (1. část) 3 A1PRG - Programování – Seminář
Struktury, qsort, mergesort BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií.
Datové typy 6 A1PRG - Programování – Seminář
Práce se soubory. * soubory patří k základním datovým prvkům v počítači * převážná většina programovacích jazyků má podporu určité formy práce se soubory.
PRÁCE S PROUDY V.NET FRAMEWORK APLIKACÍCH Architektura technologie.NET Jan Martinovič, FEI - Katedra Informatiky.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B8 Autor Ing. Jiří Kalousek Období vytvoření listopad.
OSNOVA: a) Řetězce v C b) Funkce stdio.h pro řetězce c) Funkce string.h pro řetězce d) Příklad Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače.
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
Seminář C cvičení STL, Trolltech Ing. Jan Mikulka.
Seminář C cvičení Obsluha výjimek Ing. Jan Mikulka.
Práce se soubory Soubory se používají pro ukládání dat pro pozdější použití. Dalším a lepším způsobem jak ukládat data je použití databáze. Soubory se.
Současný svět Projekt č. CZ /3. 1
A1PRG - Programování – Seminář Ing. Michal Ukazatele a pole 10 Verze
Cvičení.
OSNOVA: a)Programování se soubory b)Záloha databáze v souboru c) Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování.
11/04/20151 Soubory a proudy (1) Soubor (file) označuje pojmenovanou sadu dat uloženou na externím záznamovém médiu (např. HDD, CD, DVD, BD, tape) Proud.
Algoritmizace a programování Binární soubory - 14 Mgr. Josef Nožička IKT Algoritmizace a programování
Příklady v jazyku C – část 4
Příklady v jazyku C – část 3
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro vstup a výstup 12 Verze
Spojové struktury BI-PA1 Programování a algoritmizace 1, ZS
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
OSNOVA: a) Úvod a klasifikace b) Funkce main() s argumenty c) Souborový vstup a výstup d) Programování WAV Jiří Šebesta Ústav radioelektroniky, FEKT VUT.
Gymnázium prof. Jana Patočky Jindřišská Praha 1 „Praha & EU: Investujeme do vaší.
Realloc a qsort examples BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
Algoritmizace a programování Textové soubory - 13 Mgr. Josef Nožička IKT Algoritmizace a programování
A1PRG - Programování – Seminář Ing. Michal Řízení běhu programu 5 Verze
1 Počítače a programování 1 13.přednáška. 2 Obsah přednášky Vstupy a výstupy – 1.část.
JUI přednáška Vstup a výstup, cykly RNDr. Jiří Dvořák, CSc.
Vazby dynamických proměnných,databázové systémy Přednáška č. 10.
Ukazatele, řetězce Přednáška č. 3. Ukazatele  Ukazatel (pointer) – typ o velikosti 4 bajty (v 32bit. systémech) pro uložení adresy objektu na který ukazuje.
Soubory BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
Počítače a programování 2 pro obor EST KPC2E TUTORIÁL 1
Pokročilé datové typy (struktury, unie, dynamické proměnné)
Práce se soubory a řetězci Přednáška č. 9. Práce se soubory v C (1)  Knihovna #include  Knihovna #include  Ukazatel FILE *stream;  Otevření souboru.
OSNOVA: a)3D grafické výstupy – doplnění b)Práce se soubory Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 2 pro obor EST.
Algoritmizace a programování Soubory. Oč jde? Vytvoření externího souboru Vytvoření externího souboru Tento soubor může být: Tento soubor může být: Textový.
Programování KONSTANTY, ČTENÍ PO JEDNOM ZNAKU GETCHAR() FORMÁTOVANÝ VÝSTUP POMOCÍ PRINTF, VÝVOJOVÉ DIAGRAMY, CYKLY.
Programování OPERÁTOR SIZEOF, FUNKCE, POLE JAKO PARAMETRY FUNKCÍ ERIK KRÁL.
Úvod do Pythonu – IO operace se soubory.
Výukový materiál zpracován v rámci projektu
Vstupní a výstupní operace (1)
Vzorové řešení zápočtového testu
Dávkové soubory Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Kurz algoritmizace a programování v jazyce C
Řetězce (24) Funkce strchr: deklarována v: string.h
Oblast platnosti identifikátoru (1)
Řetězce (1) Řetězec (string) je posloupnost znaků (hod-not typu char)
Vstupní a výstupní operace (1)
Transkript prezentace:

A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro práci se soubory 13 Verze

Agenda  Standardní knihovní funkce pro práci se soubory

Typy souborů  Textové soubory  Binární soubory

Textové soubory  Lze je otevřít běžným textovým editorem  Organizovány po řádcích  Každý řádek ukončen znakem \n

Binární soubory  Při otevření běžným textovým editorem nedávají smysluplnou informaci  V souboru uloženy binárně přímo číselné hodnoty  Výhody:  pokud je nutné uložit číslo (např. u čísla je v textovém souboru uloženo 5 bytů, ale v binárním 2 – při použití datového typu short int)  Odpadá nutnost konverze mezi použitým datovým typem a textem

FILE  Struktura FILE – speciální datový typ pro práci se soubory.  Struktura definována v souboru stdio.h  Obsahuje informace o otevřeném souboru, ukazatel na aktuální pozici v souboru, režim otevření souboru (čtení, zápis, …)

Otevření souboru  Funkce fopen()  Hlavičkový soubor: stdio.h  Syntaxe: FILE * fopen ( const char * filename, const char * mode );  Parametry: filename…jméno souboru mode… režim otevření souboru  Návratová hodnota: FILE…ukazatel na soubor

Otevření souboru  Režim otevření souboru Textový s.Binární s.Popis rrb Otevření souboru pro čtení. Soubor musí existovat! wwb Otevření souboru pro zápis. Pokud soubor existuje, je jeho obsah přemazán. aab Otevření souboru pro zápis. Pokud soubor existuje, jsou data přidána na konec souboru.

Otevření souboru  Režim otevření souboru Textový s.Binární s.Popis r+r+b Otevření souboru pro čtení a zápis. Soubor musí existovat! w+w+b Vytvoření a otevření souboru pro čtení a zápis. Pokud soubor existuje, je jeho obsah přemazán. a+a+b Otevření souboru pro čtení a přidávání dat. Pokud soubor neexistuje, je vytvořen. Přidávat data lze pouze na konec souboru.

Uzavření souboru  Funkce fclose()  Hlavičkový soubor: stdio.h  Syntaxe: int fclose ( FILE * stream );  Parametry: stream…ukazatel na soubor  Návratová hodnota: 0 při správném uzavření souboru, jinak EOF

Příklad otevření a uzavření souboru FILE *f; f = fopen(″soubor.txt″,″r″); if(f == NULL) { printf(″Soubor nebyl nalezen″); } else { // … čtení ze souboru … fclose(f); }

Formátované čtení dat  Funkce fscanf()  Hlavičkový soubor: stdio.h  Syntaxe: int fscanf ( FILE * stream, const char * format,... ); Parametry: stream…ukazatel na soubor Další parametry stejné jako u scanf()  Návratová hodnota: Počet načtených položek nebo EOF při chybě čtení

Formátovaný zápis dat  Funkce fprintf()  Hlavičkový soubor: stdio.h  Syntaxe: int fprintf ( FILE * stream, const char * format,... ); Parametry: stream…ukazatel na soubor Další parametry stejné jako u printf()  Návratová hodnota: Počet zapsaných znaků nebo záporné číslo při chybě zápisu

Příklad zápisu do souboru FILE *f; f = fopen(″soubor.txt″,″w″); if(f == NULL) { printf(″Soubor nelze vytvořit″); } else { fprintf(f,″%d %f %s\n″, 5, 2.8, ″text″); fclose(f); }

Příklad čtení ze souboru FILE *f; f = fopen(″soubor.txt″,″r″); int x = 1; int n; while (x != EOF) { x = fscanf(″%d\t″, &n); printf(″%d\n″,n); } fclose(f);

Neformátované čtení dat Neformátovaný zápis dat  Funkce:  fgetc()… čtení jednoho znaku ze souboru  fputc() … zápis jednoho znaku do souboru  Makra:  getc()… čtení jednoho znaku ze souboru  putc() … zápis jednoho znaku do souboru  Makra by měla zajistit mírně rychlejší načítání dat.

Neformátované čtení dat  Funkce fgetc()  Hlavičkový soubor: stdio.h  Syntaxe: int fgetc ( FILE * stream ); Parametry: stream…ukazatel na soubor  Návratová hodnota: Načtený znak ve formátu datového typu int

Neformátované čtení dat  Makro getc()  Hlavičkový soubor: stdio.h  Syntaxe: int getc ( FILE * stream ); Parametry: stream…ukazatel na soubor  Návratová hodnota: Načtený znak ve formátu datového typu int

Neformátovaný zápis dat  Funkce fputc()  Hlavičkový soubor: stdio.h  Syntaxe: int fputc (int character, FILE * stream ); Parametry: character…znak, který má být zapsán stream…ukazatel na soubor  Návratová hodnota: Stejný znak, který byl zapsán. V případě chyby EOF.

Neformátovaný zápis dat  Makro putc()  Hlavičkový soubor: stdio.h  Syntaxe: int putc (int character, FILE * stream ); Parametry: character…znak, který má být zapsán stream…ukazatel na soubor  Návratová hodnota: Stejný znak, který byl zapsán. V případě chyby EOF.

Příklad čtení ze souboru a zápisu do souboru FILE *f, *g; int c; f = fopen(″x.txt″,″r″); g = fopen(″y.txt″,″w″); while ((c = getc(f)) != EOF) { putc(c, g); } fclose(f); fclose(g);

Změna pozice v souboru  Funkce  ftell() Zjištění aktuální pozice v souboru  fseek() Přesun na určitou pozici v souboru  rewind() Přesun na začátek souboru

Zjištění aktuální pozice v souboru  Funkce ftell()  Hlavičkový soubor: stdio.h  Syntaxe: long int ftell ( FILE * stream );  Parametry: stream…ukazatel na soubor  Návratová hodnota: Pozice V případě chyby -1.

Nastavení pozice v souboru  Funkce fseek()  Hlavičkový soubor: stdio.h  Syntaxe: int fseek ( FILE * stream, long int offset, int origin );  Parametry: stream…ukazatel na soubor offset …počet znaků od daného počátku origin… definice počátku pro parametr offset.  Návratová hodnota:0, pokud vše proběhne v pořádku

Nastavení pozice v souboru  Funkce fseek()  Hlavičkový soubor: stdio.h  Syntaxe: int fseek ( FILE * stream, long int offset, int origin );  Parametr origin: SEEK_SET…začátek souboru SEEK_CUR…aktuální pozice v souboru SEEK_END… konec souboru

Příklad FILE *f; long size; f = fopen („s.txt","rb"); if (f == NULL) printf ("SOUBOR NELZE OTEVŘÍT"); else { fseek (f, 0, SEEK_END); size=ftell (f); fclose (f); printf ("Velikost souboru s.txt: %ld B.\n",size); }

Přesun na začátek souboru  Funkce rewind()  Hlavičkový soubor: stdio.h  Syntaxe: void rewind ( FILE * stream);  Parametry: stream…ukazatel na soubor  Alternativa: fseek ( stream, 0L, SEEK_SET );

Zpracování bloku dat  Funkce:  fread()  fwrite()

Načtení bloku dat  Funkce fread()  Hlavičkový soubor: stdio.h  Syntaxe: size_t fread ( void * ptr, size_t size, size_t count, FILE * stream ); Parametry: ptr…adresa paměti pro uložení bloku dat size…rozměr jedné položky v bytech count…počet položek stream…ukazatel na soubor

Načtení bloku dat  Funkce fread()  Hlavičkový soubor: stdio.h  Syntaxe: size_t fread ( void * ptr, size_t size, size_t count, FILE * stream ); Návratová hodnota: Počet úspěšně načtených položek

Načtení bloku dat  Funkce fwrite()  Hlavičkový soubor: stdio.h  Syntaxe: size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream ); Parametry: ptr…adresa paměti pro načtení bloku dat size…rozměr jedné položky v bytech count…počet položek stream…ukazatel na soubor

Načtení bloku dat  Funkce fwrite()  Hlavičkový soubor: stdio.h  Syntaxe: size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream ); Návratová hodnota: Počet úspěšně zapsaných položek

Bloky dat - příklad FILE * f; int pole[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; f = fopen ( „data.bin", "wb" ); fwrite (pole, sizeof(int), 8, f); fclose (f);

A1PRG-s 13. Soubory Děkuji za pozornost Ing. Michal Heczko 218/U3 Prezentace k dispozici na