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 |