PROS - programování­ do škol *** ELEKTRONICKÁ UČEBNICE ***

PROŠ Programování do škol |

| TÉMATICKÝ CELEK 05
| 5.1 Práce se soubory
| - slouží pro ukládání záznamů, - každý ze záznamů obsahu jedno nebo více polí. Definice typu záznamu - musíme definovat datový typ, který bude sloužit k uložení záznamu:
| - všechny záznamy musí mít stejnou délku, proto musíme u stringů definovat jejich délku. Otevření souboru
| - For Random – je nepovinné, protože je to výchozí nastavení, - Len – určuje délku souboru v bajtech. Přečtení záznamu do proměnných
| - pozice – číslo záznamu, který se má kopírovat - promenna – kam se má záznam uložit. Uložení záznamu
| - pozice – kam se má záznam uložit - promenna – zdroj záznamu. Test konce souboru

- vrátí True, jestliže jsme na konci souboru cislo.
Mazání záznamů
- VB bohužel neumožňuje přímo smazat záznam,
- musíme zkopírovat všechny platné záznamy do nového souboru,
- uzavřít původní soubor a smazat ho příkazem Kill,
- přejmenovat nový soubor na původní jméno pomocí příkazu Name.

| 5.2 Objektový model FSO

- umožňuje pro práci se složkami a soubory používat objektové nástroje,
- je obsažen v knihovně Scripting (Scrrun.dll),
- zatím umožňuje pouze práci s textovými soubory.
- obsahuje tyto objekty:
DriveListBox - umožňuje získat informace o jednotkách v systému.
DirListBox - práce se složkami.
FileListBox - práce se soubory.
FileSystemObject – hlavní objekt této skupiny obsahující množství metod pro práci s těmito objekty.
TextStream - pomocí tohoto objektu můžeme zapisovat a číst textové soubory.
1. Vytvoření objektu FileSystemObject
- můžeme k tomu použít jednu ze dvou metod:
- vytvoření objektové proměnné:

| 2. Použití vhodné metody - vytvoření dalších objektů: - metoda CreateFolder:

- přístup k existujícím jednotkám, souborům a složkám:
⑉ GetDrive,
⑉ GetFolder,
⑉ GetFile.
- kopírování (CopyFile, CopyFolder),
- přesouvání (MoveFile, MoveFolder),
- mazání (DeleteFile, DeleteFolder),
- ověření existence (DriveExists, FolderExists, FileExists),
- otevření textového souboru (OpenTextFile).
3. Přístup k vlastnostem objektu
jednotky (objekt Drive):
⑉ velikost jednotky v bajtech (TotalSize), volný prostor (AvailableSpace, FreeSpace),
⑉ písmeno jednotky (DriveLetter),
⑉ typ jednotky (DriveType),
⑉ sériové číslo jednotky (SerialNumber),
⑉ funkce: CurDir (aktuální adresář), ChDrive, Chdir (změna jednotky, adresáře), App.Path (cesta k adresáři k aplikaci).
adresáře (objekt Dir):
⑉ zrušení složky (Delete nebo FileSystemObject.DeleteFolder),
⑉ přemístění složky (Move nebo FileSystemObject.MoveFolder),
⑉ zkopírování složky (Copy nebo FileSystemObject.CopyFolder),
⑉ získání jména složky (Name).

| 5.3 Ošetření chyb
| - chyby vznikají problémy s hardwarem nebo nepředpokládanými akcemi uživatele, - pro ošetření chyby slouží chybové rutiny.
| 5.3.1 Návrh chybové rutiny

- chybová rutina je číst procedury určená pro zachytávání chyb a reakcí na ně,
- chybové rutiny bychom měli přidávat do každé procedury, ve které se dá očekávat výskyt chyb,
- postup při navrhování chybové rutiny obsahuje tři kroky:
1) Zapnout zachytávání chyb
- určíme, která část kódu se bude provádět při výskytu chyby za běhu programu (která chybová rutina bude aktivována),
- zachytávání chyb je zapnuto příkazem On Error:

- zachytávání chyb je zapnuté v proceduře, ve které je tento příkaz uveden – tedy do doby, než jsou provedeny příkazy End Sub, Exit Sub, End Function, Exit Function, End Property, Exit Property,
- současně může být zapnut pouze jeden způsob zachytávání chyby,
- lze vytvořit různé chybové rutiny a zpřístupňovat je pomocí příkazu On Error,
- zachytávání chyb lze rovněž dodatečně vypnout použitím zvláštní podoby příkazu On Error:

| 2) Psaní rutiny pro obsluhu chyb - prvním krokem je určení návěští řádku, kde bude chybová rutina začínat, - návěští se píše ve tvaru:
| - tělo chybové rutiny obsahuje kód ošetřující chyby, - musíme určit, ke kterým chybám může dojít, a stanovit odpovídající způsob ošetření, - vlastnost Number objektu Err obsahuje číslo představující nejběžnější chyby za běhu programu. (CVIČNÝ 04)

3) Opuštění chybové rutiny
- v závislosti na aktuálním stavu můžeme k opuštění chybové rutiny použít kterýkoliv z následujících příkazů:
- Resume – běh programu pokračuje na řádku, kde byla předchozí chyba vyvolána. Používá se tehdy, když byla příčina chyby úplně odstraněna.
- Resume Next – běh programu pokračuje na řádku následujícím za řádkem, v němž došlo k chybě.
- Resume line – běh programu pokračuje na řádku určeném parametrem line, což je návěstí řádku nebo nenulové číslo řádku, které musí být v té samé proceduře jako chybová rutina.

| 5.4 Užití předdefinovaných dialogových oken

- můžeme použít tyto funkce, které umožňují vložit do aplikace předdefinovaná dialogová okna:
⑉ InputBox – zobrazí výzvu a vrací cokoliv, co je uživatelem zadáno do textového pole.
⑉ MsgBox – zobrazí zprávu a vrací hodnotu, určující, na které tlačítko uživatel klepl myší.
Funkce InputBox
- vybídne uživatele k zadání nějakých dat,
- tato funkce zobrazí modální dialogové okno, které vyžaduje od uživatele zadání údaje,
- zapisuje se takto:
InputBox (Prompt,Titul) As String
⑉ Prompt– text, který se zobrazí v okně,
⑉ Titul – nadpis okna.
- funkce vrací údaje zadané uživatelem ve formátu String.
(CVIČNÝ 01)

Funkce MsgBox
- slouží pro získávání odpovědí typu ano/ne od uživatele a pro zobrazení krátkých zpráv, jako jsou chybová hlášení, varování nebo výstrahy v dialogovém okně,
- po přečtení zprávy uživatel vybere tlačítko, kterým zavře okno,
- zapisuje se takto:
MsgBox (Prompt, Buttons,Titul) As VbMsgBoxResult
⑉ Prompt – text, který se zobrazí v okně,
⑉ Titul – nadpis okna,
⑉ Buttons – může například obsahovat tyto hodnoty:
(CVIČNÝ 02)

| - funkce vrací hodnotu MsgBoxResult, kterou můžeme testovat jako číslo nebo konstantu dle následující tabulky:
| 5.5 Ovládací prvky Image, Picture, DriveListBox, DirListBox, FileListBox

PictureBox
- slouží k zobrazování obrázků,
- aktuální obrázek je zadán do vlastnosti Image,
- načtení a zobrazení:
Name.Image = Image.FromFile(„Jmeno_obrazku“)
- vlastnost SizeMode způsobí přizpůsobení obrázku ovládacímu prvku podle jeho velikosti (StretchImage).
- vlastnost Location nastavuje pomocí souřadnic X a Y umístění ovládacího prvku na formuláři.
- vlastnost BackColor umožňuje nastavit jednotnou barvu pozadí ovládacího prvku PictureBox,
- vlastnost BackroundImage umožňuje nastavit obrázek na pozadí ovládacího prvku PictureBox.
- Kreslení do ovládacího prvku PictureBox je v VB 2010 komplikované a proto se mu budeme podrobněji věnova až v následující kapitole.

DriveListBox
- Umožňuje zobrazení jednotek připojených k danému počítači
- Bez kódu ukazuje svazek odkud je spuštěn program
- Příkazy: Drive
- Syntaxe: DriveListBox1.Drive
(CVIČNÝ 03)

| DirListBox - Umožňuje zobrazení složek obsažených na disku - Bez kódu ukazuje složku odkud je spuštěn program - Příkazy: Path - Syntaxe: DirListBox1.Path
| FileListBox - Umožňuje zobrazení souborů obsažených ve složce - Bez kódu ukazuje soubory ve složce odkud je spuštěn program - Příkazy: Path, Pattern - Syntaxe: FileListBox1.Path a FileListBox1.Pattern = „řetězec“
| 5.6 Základní příkazy

Path a Drive
- První procedurou tedy bude synchronizace ovládacího prvku DriveListBox1 a DirListBox1.
- To znamená, že propojíme oba ovládací prvky tak, aby se podle typu vybrané jednotky automaticky měnil i seznam zobrazených složek.
- Stručně řečeno, podle toho, kterou jednotku vybereme, tak se změní i seznam složek, které jsou na dané jednotce obsaženy.
- K tomuto slouží příkaz PATH (cesta). Zde uvádíme jeho syntaxi:

- Jako Objekt1 můžeme použít volání ovládacího prvku (v našem případě DirListBox1).
- První objekt vždy zadává objekt, který bude přizpůsobován, v tomto případě je jasné, že se musí měnit seznam složek podle toho, která jednotka je vybrána.
- Potom následuje příkaz Path (nastav cestu, od názvu objektu je oddělen tečkou). Poslední částí příkazu je přirazení Objektu2, který je nadřazen Objektu1.
- V našem případě je to ovládací prvek DriveListBox1, protože podle toho, kterou jednotku zvolíme, tak se změní obsah seznamu složek.
- Za objekt se umisťuje klíčové slovo Drive, které je od Objektu2 odděleno tečkou. Toto klíčové slovo říká počítači to, že se jedná o seznam jednotek (Drive).
LoadFile
- příkaz pro načtení obrázku do ovládacích prvků PictureBox
- syntaxe:

| Spojování řetězců - Spojení řetězců (konkatenace) se děje pomocí: - znaku & (AltGr + C)
| (CVIČNÝ 05)

STAŽENÍ CVIČNÝCH PŘÍKLADŮ
CVIČNÝ 01
CVIČNÝ 02
CVIČNÝ 03
CVIČNÝ 04

| CVIČNÝ 05 METODIKA
| SAMOSTATNÁ PRÁCE 01 VZOROVÉ ZADÁNÍ 02 VZOROVÉ ZADÁNÍ S CHYBAMI 03 SAMOSTATNÉ ZADÁNÍ
| ZPĚT