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

Slides:



Advertisements
Podobné prezentace
Standardní knihovní funkce pro práci s textovými řetězci
Advertisements

VISUAL BASIC Práce se soubory.
Třída Array Je součásti balíčku java.util Účelem je usnadnit práci s poli Metody – nejpoužívanější equel(),fill(),sort() a binarySearch() equels() Slouží.
Programování v Pascalu Přednáška 9 RNDr. Hana Havelková.
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.
C# pro začátečníky Mgr. Jaromír Osčádal
Materiály k přednášce Úvod do programování Ondřej Čepek.
KIV/PPA1 cvičení 11 Cvičící: Pavel Bžoch. Osnova cvičení Souborový vstup a výstup Práce s textovými soubory.
C# - struktury, výčtové typy, pole
C# - datové typy Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
C# - Registry Windows Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
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.
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro práci se soubory 13 Verze
PRÁCE S PROUDY V.NET FRAMEWORK APLIKACÍCH Architektura technologie.NET Jan Martinovič, FEI - Katedra Informatiky.
C# - znakové typy a řetězce
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.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
C# - číselné datové typy
C# - Databáze úvod, ADO.NET
C# - Exceptions (výjimky)
C# - pointery Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Objektové programování
C# - funkce a procedury Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
C# - OOP (object oriented programming)
C# - Grafika Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
08/04/20151 Události (1) Členy třídy umožňující objektu nebo třídě rea- govat na zprávy (události) Dovolují třídě nebo objektu informovat jinou třídu nebo.
C# - Úvod Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
C# - prvky UI – vlastnosti a události Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Alg91 Textové soubory Na rozdíl od jiných typů souborů jsou textové soubory určené pro gramotné lidské oko. Textový soubor je posloupnost znaků členěná.
JavaScript Podmínky, cykly a pole.
3. Příkazy  Příkazy dělíme na jednoduché a strukturované.  Jednoduché příkazy - žádnou jejich dílčí částí neni příkaz - přiřazovací, vstupu a výstupu,
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.
C# - Testování a ladění aplikací Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
KIV/PPA1 cvičení 8 Cvičící: Pavel Bžoch. Osnova cvičení Objekty v Javě Třída Konstruktor Metody Metody a proměnné třídy x instance Program sestávající.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
C# - Menus, ToolBars and Dialogs Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
C# - předávání parametrů Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
UNIX — doplňky Informatika pro ekonomy II přednáška 9.
ADO.NET – Transakce Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
C# - Generic Collections Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
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.
Gymnázium prof. Jana Patočky Jindřišská Praha 1 „Praha & EU: Investujeme do vaší.
Sedmé cvičení Soubory Vstupně/výstupní proudy. Java cv72 Soubory Třída File Objekt popisující soubor na filesystému Nedá se z něho přímo číst a psát Představuje.
ADO.NET – Objekt DataSet (offline scenář) Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Active Directory Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Autor:
Algoritmizace a programování Textové soubory - 13 Mgr. Josef Nožička IKT Algoritmizace a programování
KIV/PPA1 cvičení 9 Cvičící: Pavel Bžoch. Osnova cvičení Třída String a její metody –Řetězce a operace s nimi.
Pole Arrays.
1 Počítače a programování 1 13.přednáška. 2 Obsah přednášky Vstupy a výstupy – 1.část.
C# - konverze datových typů Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
ADO.NET – object Connection Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Microsoft SQL server Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
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.
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ý.
Programovací jazyk C# 2. část. Datové typy C# rozeznává dva druhy datových typů, hodnotové a referenční. Hodnotové datové typy Proměnné hodnotového datového.
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA: Objektově orientované.
Ú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.
Algoritmizace a programování
Úvod do Pythonu – IO operace se soubory.
Výukový materiál zpracován v rámci projektu
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
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 (stream) představuje.
Algoritmizace a programování
Typový příklad 3 – zadání 1
Kurz algoritmizace a programování v jazyce C
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně
Transkript prezentace:

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: Třída TextWriter: 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

Seriály o programování v jazyce C# : www.živě.cz www.java2s.com Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Použité materiály: Kniha: Programujeme profesionálně, nakladatelství WROX, autor: Jay Glynn,… www.wikipedia.com Seriály o programování v jazyce C# : www.živě.cz www.java2s.com www.functionx.com www.csharp-station.com www.msdn.com www.bytes.com www.c-sharpcorner.com