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

Podobné dokumenty
Metodický list k didaktickému materiálu

Tabulková data. budeme pracovat s CSV soubory položky oddělené středníkem, např.

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

Indexové seznamy. známe už pole, kde ale musí být předem známa velikost indexové seznamy umí růst dynamicky

Předdefinované dialogy

Ošetřování chyb v programech

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

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

Metodický list k didaktickému materiálu

Programování jako nástroj porozumění matematice (seriál pro web modernivyuka.cz)

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

Ú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

POLE. - datová struktura ze složek stejného typu, ke kterým se přistupuje pomocí indexů

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

Objekty jako zapozdření dat. začneme vytvářet vlastní objekty a třídy

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

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

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

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

Úvod do programování 8. hodina

VISUAL BASIC. Práce se soubory

Zápis programu v jazyce C#

Desetinná čísla. pro celá čísla jsme používali typ int. pro desetinná čísla používáme typ double

SOUBORY, VSTUPY A VÝSTUPY

Pokročilá práce s proměnnými

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

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

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

Pro kontrolu správného formátu hodnoty N použijeme metodu try-catch.

zapište obslužnou metodu události Click tlačítka a vyzkoušejte chování polevýsledek.text = polečíslo1.text + polečíslo2.text;

Java a XML. 10/26/09 1/7 Java a XML

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

Pokud neuvedeme override, vznikne v synu nová (nevirtuální) metoda (a pochopitelně se nezavolá, jak bychom

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

Jazyk C# (seminář 5)

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

Metodický list k didaktickému materiálu

Podmíněné vykonávání

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

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

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

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

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

Metodický list k didaktickému materiálu

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

17. Projekt Trojúhelníky

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

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

Nejzajímavější jsou události MouseDown a KeyDown.

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

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

prostřednictvím ICT Téma didaktického materiálu RNDr. Václava Šrůtková

IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write("\nPrumerna teplota je {0}", tprumer);

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

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

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

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

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

Vstup a výstup datové proudy v C

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

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

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

6. PRÁCE S DATOVÝMI PROUDY

Knihovna XmlLib TXV první vydání prosinec 2010 změny vyhrazeny

Práce s textem. Třída Character. Třída Character. Třída Character. reprezentuje objekty zapouzdřující hodnotu typu char (boxing / unboxing)

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

Práce se soubory v Javě

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

NPRG030 Programování I, 2010/11

Knihovna XmlLib TXV druhé vydání říjen 2012 změny vyhrazeny

Regulární výrazy. Vzory

Implementace LL(1) překladů

Formátová specifikace má tvar (některé sekce nemají smysl pro načítání) %

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

vstup a výstupv jazyce C

Jazyk C# a platforma.net

Textové soubory. alg9 1

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

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

Klíčové pojmy: Události, handlery, třída Graphics, pera, stětce, kreslení vyplněných a nevyplněných objektů.

Úvod do programování 6. hodina

Základy C++ I. Jan Hnilica Počítačové modelování 18

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

Soubor jako posloupnost bytů

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

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

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

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.

Zadání: TÉMA: Zápis algoritmu, čtení textového souboru, porovnání řetězců.

Takto chápanému druhu objektů se říká TŘÍDA.

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

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

Tabulkový procesor. Základní rysy

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

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

15. Projekt Kalkulačka

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

7. Datové typy v Javě

Metodický list k didaktickému materiálu

Jazyk C# - přístup k datům

Transkript:

Soubory

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

Základy zápisu using System.IO; nutné pro odkázání na jmenný prostor, obsahující třídy určené pro práci se soubory Fáze zápisu: 1. otevření souboru pro zápis (ev. vytvoření) vyšle se požadavek OS o zpřístupnění (ověří se práva) a zamknutí vůči jiným programům 2. zapsání dat vlastní zápis hodnot 3. zavření souboru uvolnění zámku, vyprázdnění vyrovnávací paměti

zápis se provádí pomocí třídy instance StreamWriter metody Write zápis bez odřádkování WriteLine zápis a odskok na nový řádek Close zavření souboru

private void tlačítkozapiš_click(object sender, EventArgs e) // 1.KROK: Otevření souboru pro zápis (vytvoření) string jménosouboru = "první pokus.txt"; StreamWriter soubor = new StreamWriter(jménoSouboru); // 2.KROK: Manipulace - vlastní zápis // první část prvního řádku soubor.write("příliš žluťoučký kůň "); // druhá část prvního řádku string řetězec = "úpěl ďábelské ódy."; soubor.writeline(řetězec); // druhý řádek soubor.writeline("nádhera poslouchat..."); // 3.KROK: Zavření souboru soubor.close(); } // Hlášení pro uživatele MessageBox.Show("HOTOVO!");

Volba kódování instance třídy Encoding, které se zadávají jako statické vlastnosti (př. Encoding.UTF8) nebo jako výsledky volání metody GetEncoding, které se předává parametr s číslem kódové stránky (př. Encoding.GetEncoding(1250)) konstruktor StreamWriter soubor = new StreamWriter(jménoSouboru, false, kódování); prostřední parametr append typu bool udává, zda v případě existujícího souboru přidat obsah na konec (true) nebo soubor přepsat (false) Okno pro výběr souboru SaveFileDialog přímo v designéru Visual Studia zobrazení zavoláním metody ShowDialog() vrací odpověď DialogResult podle stisknutého tlačítka jméno souboru je ve vlastnosti FileName

private void tlačítkozapiš_click(object sender, EventArgs e) // Zjištění informací o souboru string jménosouboru = polejménosouboru.text; Encoding kódování; if (knoflíkcp1250.checked) kódování = Encoding.GetEncoding(1250); else if (knoflíkcp852.checked) kódování = Encoding.GetEncoding(852); else if (knoflíklatin2.checked) kódování = Encoding.GetEncoding(28592); else if (knoflíkutf8.checked) kódování = Encoding.UTF8; else if (knoflíkutf16le.checked) kódování = Encoding.Unicode; else kódování = Encoding.BigEndianUnicode; // Otevření souboru StreamWriter soubor = new StreamWriter(jménoSouboru, false, kódování); // Zápis jednotlivými příkazy soubor.write("příliš žluťoučký kůň "); soubor.writeline("úpěl ďábelské ódy"); // Zápis pomocí cyklu for (int číslo = 1; číslo <= 5; číslo++) int desetinásobek = 10*číslo; string řádek = "Desetinásobkem čísla " + číslo.tostring() + " je číslo " + desetinásobek.tostring(); soubor.writeline(řádek); } // Zavření souboru soubor.close(); } MessageBox.Show("HOTOVO!"); private void tlačítkoprocházet_click(object sender, EventArgs e) DialogResult odpověď = oknouloženísouboru.showdialog(); if (odpověď == DialogResult.OK) polejménosouboru.text = oknouloženísouboru.filename;

Základy čtení analogicky k zápisu: StreamReader (jen parametr jméno souboru aut. UTF8, nebo jméno a kódování), ReadLine, OpenFileDialog private void tlačítkopřečti_click(object sender, EventArgs e) // Zjištění informací o souboru string jménosouboru = polejménosouboru.text; Encoding kódování; if (knoflíkcp1250.checked) kódování = Encoding.GetEncoding(1250); else if (knoflíkcp852.checked) kódování = Encoding.GetEncoding(852); else if (knoflíklatin2.checked) kódování = Encoding.GetEncoding(28592); else if (knoflíkutf8.checked) kódování = Encoding.UTF8; else if (knoflíkutf16le.checked) kódování = Encoding.Unicode; else kódování = Encoding.BigEndianUnicode; // 1.KROK: Otevření souboru StreamReader soubor = new StreamReader(jménoSouboru, kódování); } // 2.KROK: Vlastní čtení string řádek1 = soubor.readline(); string řádek2 = soubor.readline(); string řádek3 = soubor.readline(); // 3.KROK: Zavření souboru soubor.close(); // Zobrazení přečtených řádků string zpráva = řádek1 + Environment.NewLine + řádek2 + Environment.NewLine + řádek3; MessageBox.Show(zpráva); private void tlačítkoprocházet_click(object sender, EventArgs e) DialogResult odpověď = oknootevřenísouboru.showdialog(); if (odpověď == DialogResult.OK) polejménosouboru.text = oknootevřenísouboru.filename; }

Čtení celého souboru pomocí do-while // 2.KROK: Vlastní čtení a zobrazení v textovém poli string řádek, celýtext = null; do } řádek = soubor.readline(); if (řádek!= null) celýtext += řádek + Environment.NewLine; while (řádek!= null); poleobsah.text = celýtext; pomocí while // 2.KROK: Vlastní čtení a zobrazení v textovém poli string řádek, celýtext = null; while ((řádek = soubor.readline())!= null) celýtext += řádek + Environment.NewLine; poleobsah.text = celýtext;

Př. program, co načte textový soubor, převede ho na velká písmena a uloží pod novým názvem tip. metoda ToUpper() třídy string případné problémy s načtením nebo uložením ošetřete pomocí try-catch

Př. program, který z textového souboru, kde je na každém řádku jedno číslo, tato čísla načte a sečte. Pokud je obsah souboru chybný, napíše, že součet nelze provést. Program, který zobrazí datum slovy. Slova má uložena v souborech ze složky http://www.gfp.cz/prg/datum_slovy/

Př. program, který zobrazí posledních 10 řádků textového souboru Př. program, který spojí střídavě po řádcích dva soubory do jednoho, tj. první soubor bude tvořit liché řádky výsledného, druhý sudé.

Formátování řetězců - metoda Format třídy String - http://msdn.microsoft.com/cs-cz/library/system.string.format%28v=vs.110%29.aspx - dole See Also formátovací řetězce pro čísla, data atd. // Základní použití int početlidí = 12, početaut = 5; string zpráva = string.format( "Na firemní akci přijelo 0} lidí a 1} aut", početlidí, početaut); polezobrazení.text = zpráva + Environment.NewLine + Environment.NewLine; // Formátování spolu se zarovnáním string[] jména = new string[] "Černý Jindřich", "Zelený Marcel", "Kaštanová Květoslava"}; double[] podíly = new double[] 101.0 / 201, 20.0 / 201, 80.0 / 201}; polezobrazení.text += "Podíly ve společnosti:" + Environment.NewLine; polezobrazení.text += string.format("0,-22} 1,5}", "Jméno", "Podíl") + Environment.NewLine; for (int i = 0; i < jména.length; i++) zpráva = string.format("0,-22} 1,5:P1}", jména[i], podíly[i]); polezobrazení.text += zpráva + Environment.NewLine; } Na procenta, 1 des. místo Na 5 znaků doprava Na 22 znaků doleva

Je potřeba použít neproporcionální písma jako Courier New, Lucida Console apod. Stejným způsobem lze formátovat při zápisu do textových souborů pomocí Write a WriteLine. Př. napište program, který načte textový soubor a zcenzuruje (nahradí hvězdičkami) slova ze seznamu v souboru cenzura.txt. Tip: metoda Replace volaná na textový řádek

Př. program, který vyhodnotí platy zaměstnanců ze souboru ve složce http://www.gfp.cz/prg/platy/

Program, který zjistí, zda je slovo nebo věta palindrom. Mezery a interpunkci ignorujte.

private void tlačítkozjisti_click(object sender, EventArgs e) // Odstraň mezery, převeď na malá písmena string věta = polezkoumanéslovověta.text; string zleva = věta.tolower().replace(" ", null); // Převeď na pole, převrať a převeď zpět na string char[] veznacích = zleva.tochararray(); Array.Reverse(veZnacích); string zprava = new string(veznacích); } // Vyhodnoť if (zleva == zprava) MessageBox.Show("PALINDROM!"); else MessageBox.Show("Nejedná se o palindrom");

Třída Path prozkoumejte sami, jak to funguje private void tlačítkoprocházet_click(object sender, EventArgs e) if (oknootevřenísouboru.showdialog() == DialogResult.OK) polejménovýchozího.text = oknootevřenísouboru.filename; } private void tlačítkonajdi_click(object sender, EventArgs e) } string jménovýchozího = polejménovýchozího.text; string složka = Path.GetDirectoryName(jménoVýchozího); string jménobezpřípony = Path.GetFileNameWithoutExtension(jménoVýchozího); string přípona = Path.GetExtension(jménoVýchozího); string novéjméno = jménobezpřípony + " (VÝBĚR)" + přípona; string jménovýsledného = Path.Combine(složka, novéjméno); polejménovýsledného.text = jménovýsledného;

Výběr více souborů Dialogové okno pro výběr souborů umožňuje vybrat souborů víc (tažením myší nebo s pomocí Ctrl a Shift). Aby to fungovalo, musí se nastavit vlastnost MultiSelect na True. Výsledek je v poli string[] FileNames dialogového okna. Př. program, který zobrazí názvy vybraných souborů uživatelem.

Př. program, který udělá slideshow z obrázků v zadané složce.