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



Podobné dokumenty
Jazyk C# (seminář 5)

Algoritmizace a programování

Struktura třídy, operátory, jednoduché algoritmy, junit. Programování II 2. cvičení Alena Buchalcevová

SOUBORY, VSTUPY A VÝSTUPY

Ú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

Stručný návod na práci v modulu podatelna a výpravna

Modelová úloha Splachovač

5. Ř etězce (třída String)

Úvod do programování 8. hodina

Informační a komunikační technologie. 1.4 Data, informace, komprimace

Maturitní témata z předmětu Programování a databázové systémy. pro šk. rok 2012/2013

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

V této části manuálu bude popsán postup jak vytvářet a modifikovat stránky v publikačním systému Moris a jak plně využít všech možností systému.

Modul Řízení objednávek.

1. Téma 12 - Textové soubory a výjimky

Projekt: 1.5, Registrační číslo: CZ.1.07/1.5.00/ Zoner Photo Studio

Soubory a databáze. Soubor označuje množinu dat, která jsou kompletní k určitému zpracování a popisují vybrané vlastnosti reálných objektů

Manuál Kentico CMSDesk pro KDU-ČSL

Windows/OpenOffice.org

Outlook manuál. BeeOnline. Rychlý kontakt:

Oborové číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B

NÁVOD K OBSLUZE MODULU VIDEO 64 ===============================

Jednotný vizuální styl: podpis v ové korespondenci.

Témata pro doktorandské studium

Využití interaktivní tabule ve výuce

Úprava fotografií hledání detailu, zvětšování (pracovní list)

Tekla Structures Multi-user Mode

Vytvoření nebo odstranění makra Excel

TIP: Pro vložení konce stránky můžete použít klávesovou zkratku CTRL + Enter.

Aplikace počítačů v provozu vozidel 9

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

Souborové operace Mgr. Josef Horálek

Obsah 1. Grafický manuál firmy 2. Podklady grafického manuálu 3. Varianty loga 4. Logo a logotyp

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY CVIČENÍ 8

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

Práce se soubory v Javě

Cílem kapitoly je seznámit studenta se strukturou programu a jeho překladem.

3 Vývojová prostředí, základní prvky jazyka Java, konvence jazyka Java

Android Elizabeth. Verze: 1.3

VYHLÁŠKA ze dne. června 2009 o stanovení podrobností užívání a provozování informačního systému datových schránek

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Algoritmizace a programování

Vzdělávací program pro obchodní partnery společnosti ROCKWOOL průvodce školením

Používání klávesnice. Zobrazit vše. V tomto článku

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

SimOS. Jakub Doležal Radek Hlaváček Michael Očenášek Marek Reimer

Počítačová gramotnost II Mgr. Jiří Rozsypal aktualizace

téma: Formuláře v MS Access

ROZDÍL SE SKRÝVÁ V DETAILECH

Projekt: Inovace oboru Mechatronik pro Zlínský kraj Registrační číslo: CZ.1.07/1.1.08/

OBEC HORNÍ BOJANOVICE obecně závazná vyhláška č. 05/2005

Management projektů. Programová podpora auditu sytému managementu kvality HOT 4IT. Návrh

Ošetřování chyb v programech

Zvyšování kvality výuky v přírodních a technických oblastech CZ.1.07/1.128/ Nástrahy virtuální reality (pracovní list)

Vítězslav Bártl. únor 2013

Operace nad celými tabulkami

Úprava tabulek v MS Word. Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T. G. Masaryka, Kostelec nad Orlicí

Server. Software serveru. Služby serveru

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT. Cyklus while, do-while, dělitelnost, Euklidův algoritmus

Kontrolní test Číslicová technika 1/2. 1.Převeďte číslo 87 z desítkové soustavy z= 10 do soustavy dvojkové z=2

Obsah. Úvodem 9 Komu je kniha určena 9 Forma výkladu 9 Konkrétní postup výuky 10 Příklady ke knize 11

POSTUPY, JIMIŽ SE ŘÍDÍ ZÍSKÁVÁNÍ SOUKROMÝCH ARCHIVŮ POSLANCŮ A BÝVALÝCH POSLANCŮ PRO EVROPSKÝ PARLAMENT

Objektově orientované databáze

Výsledky přijímacích zkoušek

Návod na zřízení datové schránky právnické osoby nezapsané v obchodním rejstříku

Tlačítkový spínač s regulací svitu pro LED pásky TOL-02

Internetový portál Elektrotechnika 1. školení

Testovací aplikace Matematika není věda

Simulátor EZS. Popis zapojení

ROZCVIČKY. (v nižší verzi může být posunuta grafika a špatně funkční některé odkazy).

Operační systém z hlediska procesu Mgr. Josef Horálek

Vojenská nemocnice Olomouc Sušilovo nám. 5, Olomouc Tel.: , fax: , e mail: vnol@vnol.cz. Spirometrie

materiál č. šablony/č. sady/č. materiálu: Autor: Karel Dvořák Vzdělávací oblast předmět: Informatika Ročník, cílová skupina: 8.

Manuál pro WebRSD. verze 2.0 z

1 - Prostředí programu WORD 2007

Obsah. Obsah. Úvod... 7

4 Část II Základy práce v systému. 6 Část III Úvodní obrazovka. 8 Část IV Práce s přehledy. 13 Část V Kontakty. 19 Část VI Operativa

účetních informací státu při přenosu účetního záznamu,

MSSF Benefit praktický průvodce pro žadatele v rámci Operačního programu Rozvoj lidských zdrojů

-1- N á v r h ČÁST PRVNÍ OBECNÁ USTANOVENÍ. 1 Předmět úpravy

Konzistence databáze v nekonzistentním světě

Magnetic Levitation Control

Programový komplet pro evidence provozu jídelny v modul Sklad Sviták Bechyně Ladislav Sviták hotline: 608/

Zámkový systém pro trez ory

ORGANIZAČNÍ ŘÁD ŠKOLY

Novinky v programu Stravné 4.46 a starších

ZW3D Tréninkový manuál pokročilá animace sestavy

Návod k použití aplikace jízdního řádu v mobilním telefonu. Stažení

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

DUM. Inovace ŠVP na OA a JŠ Třebíč CZ.1.07/1.5.00/ III/2 Inovace a zkvalitnění výuky prostřednictvím ICT. Relace

1. PROSTŘEDÍ PROGRAMU. Pás karet se záložkami (na obrázku aktivovaná karta Domů ) Hlavní okno, ve kterém se edituje aktuální snímek prezentace

Microsoft Office Project 2003 Úkoly projektu 1. Začátek práce na projektu 1.1 Nastavení data projektu Plánovat od Datum zahájení Datum dokončení

- regulátor teploty vratné vody se záznamem teploty

POKYNY Č. 45. Část I Zápis nové stavby jako samostatné věci

Těhotenský test pro zrakově postižené Tereza Hyková

Katedra obecné elektrotechniky Fakulta elektrotechniky a informatiky, VŠB - TU Ostrava 16. ZÁKLADY LOGICKÉHO ŘÍZENÍ

PŘÍLOHA 1.6 SMLOUVY O PŘÍSTUPU K VEŘEJNÉ PEVNÉ KOMUNIKAČNÍ SÍTI LOGISTIKA KONCOVÝCH ZAŘÍZENÍ

Zabezpečení Uživatelská příručka

Co najdete v ASPI? (pro uživatele SVI FSE UJEP)

Transkript:

C# - I/O, streamy, práce se soubory Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí

I/O operace a datové proudy V.NET jsou všechny I/O operace realizovány prostřednictvím datových proudů Datový proud je reprezentován třídou Stream a jednotlivé typy datové komunikace jsou reprezentovány jejími členy Výhoda použití třídy Stream spočívá v jednotném přístupu k objektům, na které chceme výstup (popř. vstup) aplikovat (soubor, zařízení, paměť, )

Základní metody datových proudů Základními metodami použitými pro práci s datovými toky jsou metody Read, Write Některé datové proudy mají podporu náhodného přístupu můžeme se v nich pohybovat, ne je jen číst nebo zapisovat od začátku do konce - podpora je zajištěna parametrem CanSeek. Pokud je náhodný přístup podporován můžeme se v datovém proudu nastavit na určitou pozici pomocí vlastnosti Position

Třída FileStream Slouží k přístupu k souborům /// Ukazka zapisu do souboru pomoci metody Write tridy Stream public static void WriteToFile() FileStream myfilestream = null; //deklarace datového toku try //vytvoreni streamu myfilestream = new FileStream(@"C:\pokus.txt",FileMode.Create); //vytvoreni bufferu bytu, ze ktereho bude zapsano byte[] lbuffer = new byte[]1,2,3,4; myfilestream.write(lbuffer,0,lbuffer.length); //pokyn k zapisu myfilestream.flush(); //vyprazdneni bufferu a provedeni vsech neprovedenych //zapisu do zarizeni (souboru) finally myfilestream.close(); //uzavreni streamu

/// Ukazka nacteni dat ze souboru pomoci metody Read tridy Stream public static void ReadFromFile() FileStream myfilestream = null; //deklarace datového toku try //vytvoreni streamu myfilestream = new FileStream(@"C:\pokus.txt",FileMode.Open); //vytvoreni bufferu bytu, do ktereho nactu data ze souboru byte[] lbuffer = new byte[4]; myfilestream.read(lbuffer,0,lbuffer.length); //pokyn ke cteni for(int i = 0; i < lbuffer.length; i++) //vypsání obsahu bufferu Console.WriteLine(lBuffer[i]); finally myfilestream.close(); //uzavreni streamu

Binary Writer and Reader Protože zápis a čtení z datových proudů pouze přes byty by byl poněkud nepohodlný lze využít binárního zapisování a čtení datových proudů, které umí pracovat se všemi základními datovými typy. BinaryWriter mybinwriter = new BinaryWriter(myFileStream); //zapsani retezce mybinwriter.write("retezec"); //zapsani cisla int mybinwriterwriter.write(69); mybinwriter.flush(); mybinwriter.close(); BinaryReader mybinreader = new BinaryReader(lStream); //vypsani retezce a integeru Console.WriteLine(myBinReader.ReadString()); Console.WriteLine(myBinReader.ReadInt32());

TextReader a TextWriter Třídy jmenného prostoru Systém.IO Každá z těchto tříd má dva potomky TextReader: StringReader: čte řetězec StreamReader: čte datový tok bytů TextWriter: StringWriter: zapisuje řetězec StreamWriter: zapisuje datový tok bytů

Užitečné metody Třída TextReader: ReadLine: načte jeden řádek a posune se na další ReadToEnd: načte všechny znaky a vrátí je jako souvislý řetězec Třída TextWriter: WriteLine: zapíše jeden řádek ze zdroje

// Ukazka pouziti tridy StreamWriter pro zapis textu do souboru public static void WriteUsingStreamWriteru() Stream mytxtstream = null; try mytxtstream = new FileStream(@"C:\pokus.txt",FileMode.Create); TextWriter mytxtwriter = new StreamWriter(myTxtStream); mytxtwriter.writeline("prvni radek"); mytxtwriter.writeline("druhy radek"); mytxtwriter.close(); finally mytxtstream.close();

/// Ukazka pouziti tridy StreamReader pro cteni textu ze souboru public static void ReadUsingStreamReaderu() Stream mytxtstream = null; try mytxtstream = new FileStream(@"C:\pokus.txt",FileMode.Open); TextReader mytxtreader = new StreamReader(myTxtStream); string mystrradek; while((mystrradek = mytxtreader.readline())!= null) Console.WriteLine(myStrRadek); finally mytxtstream.close();

Memory Stream Analogicky jako při práci se zápisem a čtením do/ze souboru lze použít třídu MemoryStream pro práci s pamětí počítače Slouží většinou pro dočasné uchování dat, které nemusí být uloženy v žádném trvalém úložišti

Třída File Určená pro pohodlnou práci se soubory Obsahuje pouze statické metody Umožňuje: vytváření, mazání, kontrolování existence, kopírování, přesouvání, změnu atributů, editaci času vytvoření, otevírání,

Příklad použití třídy File public static void FileExample () string mypath = @"C:\pokusny.txt"; //pokud soubor na dane ceste neexistuje vytvorime jej if (!File.Exists(myPath)) Stream mystream = File.Create(myPath); mystream.close(); StreamWriter mywriter = File.AppendText(myPath); mywriter.writeline( Nejaky nas radek textu"); mywriter.close(); Console.WriteLine("Cas vytvoreni : 0",File.GetCreationTime(myPath)); //nastaveni atributu archivace File.SetAttributes(myPath,FileAttributes.Archive); Console.WriteLine("Attributy : ",File.GetAttributes(myPath));

Úkoly 1. Vytvořte program (s využitím tříd StringWriter, StringReader), který bude mít dvě metody. První funkce bude sloužit pro uložení textu do souboru. Druhá funkce bude vracet řetězec načtený ze souboru. Název souboru můžete v první verzi použít natvrdo. Vylepšete následně program tak aby cesta k souboru byla předávána funkcím jako parametr. 2. Pomocí třídy File utvořte program, který bude obsahovat metody: CreateFileInPath: vytvoří soubor v cestě zadané parametrem CopyFileTo: kopíruje soubory z cesty zadané prvním parametrem do cesty zadané druhým parametrem CheckFileSize: vrátí velikost souboru zadaného v parametru Vytvořte aplikaci a uživatelské prostředí k otestování Vámi vytvořených funkcí Použijte nápovědu na MSDN

Úkoly 3. Vytvořte metodu, která pomocí třídy Stream a TextReader vytvoří dvojrozměrné pole čísel z textového souboru, kde jednotlivá čísla jsou oddělena čárkou (mezerou, atd.) a přechodem na další řádek. Příklad obsahu souboru: 5,88,125,600 99,56,78,200 5,5,5,5 7,7,7,7 Parametry Vámi vytvořené funkce budou: Cesta k souboru (string) Oddělovač jednotlivých čísel (char) Vytvořte jednoduchou aplikaci, na které otestujete funkčnost Vámi vytvořené metody