Úvod do programování 8. hodina

Podobné dokumenty
Úvod do programování 6. hodina

Úvod do programování 7. hodina

Úvod Informace o prostředí Práce se soubory Regulární výrazy Konec. Programování v C# Soubory a regulární výrazy. Petr Vaněček 1 / 27

Ošetřování chyb v programech

SOUBORY, VSTUPY A VÝSTUPY

VISUAL BASIC. Práce se soubory

Jazyk C# (seminář 5)

Druhy souborů. textové. binární. nestrukturované txt strukturované - ini, xml, csv. veřejné bmp, jpg, wav proprietární docx, cdr, psd

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Úvod do programování 10. hodina

C# - I/O, streamy, práce se soubory

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Textové soubory

Práce se soubory. Úvod do programování 2 Tomáš Kühr

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Práce se soubory. Základy programování 2 Tomáš Kühr

Jazyk C práce se soubory. Jan Hnilica Počítačové modelování 16

Práce s binárními soubory. Základy programování 2 Tomáš Kühr

Programování 3. hodina. RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Typové a netypové soubory

Soubory. Hung Hoang Dieu. Department of Mathematics Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 1 / 7

Práce se soubory. Úvod do programování 2 Tomáš Kühr

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

- jak udělat konstantu long int: L long velka = 78L;

Metodický list k didaktickému materiálu

Soubor jako posloupnost bytů

SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2

POČÍTAČE A PROGRAMOVÁNÍ

Basic256 - úvod do programování Příklady. ing. petr polách

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 19.2.

PB161 Programování v C++ Proudy pro standardní zařízení Souborové proudy Paměťové proudy Manipulátory

Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni!

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: Předmět: ZAP

Předdefinované dialogy

PHP a Large Objecty v PostgreSQL

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

PA152. Implementace databázových systémů

MS Word. verze Přehled programů pro úpravu textu

Anotace. Soubory a práce s nimi, rekurze podruhé, struktury (datový typ record), Martin Pergel,

Programovací jazyk Pascal

Textové soubory. alg9 1

Úvod do programování. Lekce 1

Dynamická vícerozměrná pole. Základy programování 2 Tomáš Kühr

SignEditor 1 - návod k použití

Programování v jazyce C pro chemiky (C2160) 4. Textové řetězce, zápis dat do souboru

Úvod do programování

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

Lekce 01 Úvod do algoritmizace

Úvodem... 9 Kapitola 1 Karetních

Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

Programování 2 (NMIN102) Soubory. RNDr. Michal Žemlička, Ph.D.

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

Formátové specifikace formátovací řetězce

František Hudek. duben 2013

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

Systém souborů (file system, FS)

Středoškolská technika 2017 PROGRAM NA GENEROVÁNÍ PRVOČÍSEL

Pro označení disku se používají písmena velké abecedy, za nimiž následuje dvojtečka.

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. November 16, 2017

Algoritmizace a programování

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z

ALGORITMIZACE A PROGRAMOVÁNÍ

Programování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG )

Pole a kolekce. v C#, Javě a C++

Praktické šifrování dat pomocí programu PGP

1. Základní pojmy, používané v tomto manuálu. 2. Stránky

printf - formatovany vystup

8 Třídy, objekty, metody, předávání argumentů metod

Uživatelský manuál. Format Convert V3.1

Vstupní a vstupní proudy v C++

OPERAČNÍ SYSTÉM. Informační a komunikační technologie

Struktura a architektura počítačů (BI-SAP) 11

Úvod Jednoduchá komunikace Sockety Konec. Programování v C# Síťová komunikace. Petr Vaněček 1 / 33

Implementace LL(1) překladů

int t1, t2, t3, t4, t5, t6, t7, prumer; t1=sys.readint();... t7=sys.readint(); prume pru r = r = ( 1+t 1+t t3+ t3+ t4 t5+ t5+ +t7 +t7 )/ ;

NPRG030 Programování I, 2016/17 1 / :58:13

Systém souborů Mgr. Josef Horálek

Tematický celek Práce ze soubory. 5.2 Objektový model FSO. - slouží pro ukládání záznamů, - každý ze záznamů obsahu jedno nebo více polí.

O datových typech a jejich kontrole

Správa souborů soubor, stromová struktura. Mgr. Jan Veverka Střední odborná škola sociální obor ošetřovatel

Základy PERLu snadno a rychle

DATABÁZE ACCESS Ovládací prvky ve formuláři 5 TENTO PROJEKT JE SPOLUFINANCOVÁN EVROPSKÝM SOCIÁLNÍM FONDEM A STÁTNÍM ROZPOČTEM ČESKÉ REPUBLIKY.

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Paměťový podsystém počítače

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Zápis programu v jazyce C#

Anotace. Informace o praktiku z programování!!! Direktivy překladače Soubory (textové) Quicksort Metoda rozděl a panuj

Transkript:

Úvod do programování 8. hodina RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015

Umíme z minulé hodiny Algoritmy Hornerovo schéma Převod mezi číselnými soustavami Dlouhá celá čísla (reprezentace) Součet, rozdíl, součin, podíl Dlouhá reálná čísla (reprezentace) Zlomky (reprezentace) Syntax Konstanty Jan Lánský Úvod do programování 8. hodina 2

Cíle hodiny Soubory Textové (= textový režim přístupu) StreamReader, StreamWriter Binární (= binární režim přístupu) Syntax BinaryReader, BinaryWriter Čtení ze souboru a zápis do souboru Správa souborového systému Directory, File, Path, FileInfo Jan Lánský Úvod do programování 8. hodina 3

Přístup na disk Nepoužívat disk jako dočasné úložiště dat, která se vejdou do operační paměti Přístup na disk je o mnoho řádů pomalejší než přístup do operační paměti Disk jednotky milisekund, operační paměť desítky nanosekund (5 řádů) Zápis / čtení neprobíhá po bytech, ale po blocích Rozhraní programovacího jazyka umožňuje práci po jednotlivých bytech Buffrování (kompilátor), disková cashe Když v programu zapíšu data na disk, fyzicky se zapíší až později Práce se sousedními daty časově méně náročná než práce s daty různých částí souborů Jan Lánský Úvod do programování 8. hodina 4

using System.IO; Práce se soubory Pravé tlačítko myši na podtržený identifikátor Resolve 1. krok - Otevření souboru se zadaným jménem a režimem (čtení, zápis) Automatická kontrola existence, přístupových práv Pokud se soubor nepodaří otevřít vyvolá se chyba 2. krok - Čtení / zápis 3. krok - Zavření souboru OS umožňuje mít otevřený omezený počet souboru (řádově stovky) Při uzavření souboru se na disk zapíší obsahy bufferu na disk Pokud ukončíme program bez zápisu souboru na disk, ztratíme data z bufferu Dokud soubor nezavřeme, blokujeme ho ostatním Jan Lánský Úvod do programování 8. hodina 5

Textové vs. Binární soubory Textové Lidsky čitelný zápis Obsah dělen na řádky *.txt, *.html, *.xml Binární Lidsky nečitelné Hodnoty ve stejném tvaru jako uloženy v paměti Význam dat závisí na našem rozhodnutí *.exe, *.doc Jan Lánský Úvod do programování 8. hodina 6

Textové soubory čtení StreamReader otevření pro čtení new StreamReader(@"cesta k souboru") string s = @"cesta"; new StreamReader(s) Read() znak Vrací int, Konec souboru -1 Read(pole, start, pocet) pole znaků ReadLine() řádka ReadToEnd() do konce souboru Konec souboru null Peak() podíváme se následující znak, ale zůstane nepřečtený Close() uzavření souboru Vrací počet přečtených znaků. Konec souboru je 0 Soubory se musí zavírat Jan Lánský Úvod do programování 8. hodina 7

Cesta k souborům @ "retezec" Nepokusí se interpretovat znaky jako řídící znaky formátovacího řetězce Př.: @"..\novy" nebude odřádkovávat ("\n") Název souboru bez cesty Př.: @"soubor.txt", Najdeme v..\solution\project\bin\debug\ Absolutní cesta: Př.: @"C:\data\tmp\a.txt" Relativní cesta: Př.: @"..\..\a.txt" @ (alt + 64) Jan Lánský Úvod do programování 8. hodina 8

StreamReader Přečteme soubor po řádcích a vypíšeme ho obrazovku Práce se soubory Otevřeme pro čtení soubor se zadanou cestou Dokud jsou v souboru řádky Zavřeme soubor Cyklus lze nahradit přečtením celého souboru najednou Soubor se musí vejít do paměti Jan Lánský Úvod do programování 8. hodina 9

Textové soubory: ukázka Textové zobrazení Binární zobrazení Konec řádku Windows dva symboly 0A, 0D. Jiné OS jinak Jan Lánský Úvod do programování 8. hodina 10

Textové soubory zápis Existující soubor přepíše StreamWriter Otevření pro zápis new StreamWriter(@"cesta k souboru") Připojení na konec souboru: new StreamWriter(@"cesta k souboru", true) Write() cokoliv (17 verzí) Write(pole, start, pocet) pole znaků WriteLine() jako Write + odřádkuje Flush() zápis bufferů do souboru Close() uzavření souboru Soubory se musí zavírat Jan Lánský Úvod do programování 8. hodina 11

StreamWriter Přečteme soubor po řádcích vypíšeme ho do jiného souboru Počet řádků Otevřeme pro zápis Každých 1000 řádků budeme mít jistotu, že se data skutečně zapsala do souboru. Pojistka pro pád programu, zde není nutná Zavřeme oba soubory Flush úplně každého řádku by dost zpomaloval Jan Lánský Úvod do programování 8. hodina 12

Zápis pole Přečteme soubor po znacích a do dalšího souboru vypíšeme slova délky 5 a více. Každé slovo na novém řádku. Načteme 1 znak, později musíme přetypovat na char. Konec souboru -1 Slovo je souvislá posloupnost písmen Doufáme, že slova jsou kratší než 100, jinak chyba Začneme nové slovo Do souboru vypíšeme část pole, od indexu 0 do indexu 0 + delka - 1 Jan Lánský Úvod do programování 8. hodina 13

FileStream Soubor v Textovém režimu šel otevírat přímo new FileStream (@"cesta", FileMode) Obecné otevření souboru - nutné pro otevření souboru v binárním režimu FileMode výčtový typ Open Otevře existující soubor na začátku Append Otevře existující soubor na konci Create Vytvoří nový soubor Open je určen pro čtení Create je určen pro zápis Append je určen pro zápis formou logování Jan Lánský Úvod do programování 8. hodina 14

Binární soubory BinaryWriter zápis new BinaryWriter(FileStream) Write() 18 verzí pro různé datové typy BinaryReader čtení new BinaryReader(FileStream) Musíme načítat datové typy v odpovídajícím pořadí v jakém byly zapisovány. Jinak vzniknou nesmysly. ReadInt32(), ReadString(), 15 verzí Close() uzavření souboru Soubory se musí zavírat Jan Lánský Úvod do programování 8. hodina 15

Binární soubory ukázka Textové zobrazení Je nesmysl (zalomení řádek) Binární zobrazení Jan Lánský Úvod do programování 8. hodina 16

BinaryWriter Otevřeme binární soubor pro zápis Musíme uložit i délku pole Pro každý prvek pole uložíme hodnoty všech datových položek Zavřeme soubor Jan Lánský Úvod do programování 8. hodina 17

BinaryReader Načteme délku pole Otevřeme binární soubor pro čtení Zavřeme soubor Pro každý prvek pole musíme znát datové typy položek a pořadí v jakém jsme položky ukládali Jan Lánský Úvod do programování 8. hodina 18

Seek Textové soubory, konce řádku dva znaky 0D, 0A, nelze rozumně použít FileStream.Seek (posun, SeekOrgin) Nastavení se na konkrétní pozici v souboru (obdoba přístupu k prvku pole pomocí indexu) Má smysl jen pro binární soubory, které neobsahují řetězce proměnlivé délky (string) SeekOrgin Zamestnanec jmeno udělá Seek nepoužitelný Begin posun se počítá od začátku souboru End posun se počítá od konce souboru Seek(-1, SeekOrgin.End) posun na poslední platný znak Current posun se počítá od aktuální pozice Seek(-1, SeekOrgin.Current) posun o jeden znak zpět Jan Lánský Úvod do programování 8. hodina 19

Seek: příklad Ze souboru obsahujícího pouze 32bitová čísla načteme číslo se zadaným pořadím Zavřeme soubor Vytvoříme BinaryReader, který začíná číst na pozici, na které jsme nastaveni V souboru se nastavíme na místo, které obsahuje číslo, které chceme přečíst. Velikost datového typu * pořadí Přečteme číslo Jan Lánský Úvod do programování 8. hodina 20

Správa souborového systému Directory Zpřístupňuje funkce pro správu adresářů CreateDirectory, Move, Delete GetFiles, GetDirectories, GetParent File Zpřístupňuje funkce pro správu souborů Delete, Copy, Move, SetAttributes, GetAttributes FileInfo Length, Name, FullName Path GetFullPath, GetFileName, GetExtension Length velikost souboru, nezjistím z File Podobné FileInfo, ale nemusíme vytvářet proměnnou Jan Lánský Úvod do programování 8. hodina 21

2 rozměrná pole budou příští hodinu Příklad: Kopie souborů Vytvoříme adresář Návratová hodnota: Pole řetězců se jmény souborů Projdeme soubory Informace o aktuálním souboru Výpis názvu souboru a délky Okopírujeme soubor do zaloha true přepisovat existující soubory GetFileName Jméno souboru bez adresářů Jméno souboru změníme, aby bylo v adresáři zaloha Jan Lánský Úvod do programování 8. hodina 22

Pokračování z minulého slajdu Příklad: Smazání souborů Projdeme okopírované soubory Smažeme adresář Soubor smažeme Absolutní cesty k souborům vypíšeme na obrazovku Jan Lánský Úvod do programování 8. hodina 23

Zpětná vazba Objevili jste ve slajdech chyby? Včetně pravopisných Nechápete nějaký slajd? Je příliš obtížný, nesrozumitelný? Máte nějaký nápad na vylepšení? Anonymní formulář Odeslání za pár vteřin http://goo.gl/forms/wxkzqbszls Jan Lánský Úvod do programování 8. hodina 24