Soubory s náhodným přístupem Vytváření adresáře. Adresář Úkolem je vytvořit jednoduchý adresář, ve kterém zapisujete jméno a adresu Údaje budou uloženy.

Slides:



Advertisements
Podobné prezentace
Makra v Excelu.
Advertisements

Jak na hromadnou korespondenci
Záznamy dodavatelů v modulu Akvizice. Dodavatelé • Před iniciováním objednávky se nejprve ujistěte, zda seznam dodavatelů zahrnuje dodavatele, od kterého.
Středoevropské centrum pro vytváření a realizaci inovovaných technicko-ekonomických studijních programů Registrační číslo CZ.1.07/2.2.00/ Tento.
VISUAL BASIC Práce s řetězci Použitá literatura: Kvoch: Visual Basic 4.
ŘÍDÍCÍ STRUKTURY - PODMÍNKY
X EXEL.
Programovací jazyk C++
Pascal - příklady.
Vnitřní řazení v poli (in sito)
1 Vnitřní řazení s využitím dynamických struktur Tvorba spojového seznamu je vcelku triviální záležitostí: a)Vytvořím prázdný seznam příkazem LIST:=nil.
10. Dynamické datové struktury
VISUAL BASIC Práce se soubory.
Programování v Pascalu Přednáška 9 RNDr. Hana Havelková.
Konstanty jsou datové objekty jejich hodnoty nelze v programu měnit Deklarace Const jméno = hodnota Příklad: Textový řetězec ZPRAVA Const ZPRAVA = “Zadej.
Záložky, křížové odkazy, hypertextové odkazy
Programování v Pascalu Přednáška 7
Materiály k přednášce Úvod do programování Ondřej Čepek.
Hromadná korespondence
Hromadná korespondence
1 Vyhledávání Principy vyhledávání Klasifikace klíče:  Interní klíč – je součástí prohlížených záznamů  Externí klíč – není jeho součástí, je jím např.
Prezentační nástroj Open Office, Impress ZÁKLADY PRÁCE Předmět: Informatika Ročník: 6.ročník Klíčová slova: Nová prezentace, snímek, průvodce prezentací,
Vyhledávání dat podle určených kritérií Máte za úkol vytvořit databázi klientů v bance s jejich osobními údaji, čísly účtů a konečnými zůstatky na těchto.
VY_32_INOVACE_53_MS_Word_ II. Autor : Trýzna Stanislav Školní rok : 2011/2012 Určeno pro : šestý ročník Předmět: informatika Téma : základní orientace.
Mgr. Jan Lavrinčík, DiS..  pro proměnnou typu Date alokováno 8 bajtů paměti, které obsahují spakovaný vzorek bitů nejen pro datum, ale i pro přesný čas.
PHP – zasílání dat z formuláře
Hromadná korespondence, makro
Algoritmy a programovací techniky
Datové typy a práce s nimi
Práce se soubory Soubory se používají pro ukládání dat pro pozdější použití. Dalším a lepším způsobem jak ukládat data je použití databáze. Soubory se.
Použití uživatelských funkce Excelu
Hromadná korespondence
Tvorba štítků Jana Habrovanská, 4Y2.
JavaScript Podmínky, cykly a pole.
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í.
Grafické objekty a metody
Konstanty u jsou datové objekty u jejich hodnoty nelze v programu měnit u Deklarace Const jméno = hodnota Příklad: Textový řetězec ZPRAVA Const ZPRAVA.
VISUAL BASIC PRALG.
Algoritmizace a programování Binární soubory - 14 Mgr. Josef Nožička IKT Algoritmizace a programování
VISUAL BASIC PRALG.
Tvorba uživatelských formulářů
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.
PHP Vytváření formuláře.
Algoritmizace a programování Textové soubory - 13 Mgr. Josef Nožička IKT Algoritmizace a programování
Pole Arrays.
Typy cyklů Do...Loop For...Next For Each...Next.
Proměnné pro datum Funkce pro práci s ním
Textové soubory Vytváření a zpracování textových souborů.
Vypracovala: Mgr. Hana Toflová Dne: ICT2/1/3/7.
6. Typ záznam Strukturovaný datový typ - znamená spojení několika elementů stejného nebo různých typů do jedné proměnné. Např. pole je strukturovaný datový.
Datové typy a operátory. Co jsou datové typy  Charakterizují proměnnou nebo konstantu – jaká data obsahuje  Data jsou v počítači ukládána jako skupiny.
Formuláře ve VFP Postupy. Vytvoření nové vstupní obrazovky s pomocí wizarda: Vytvoříme formulář pro prohlížení prodavačů Mějme otevřeny tabulky Salesman.
Úvod do UNIXu (6th round)
Řetězce String. Co je to řetězec Jako řetězec označujeme pojmenovanou skupinu libovolných znaků Deklarujeme jej pomocí příkazu Délka řetězce není v tomto.
Univerzita třetího věku kurz Znalci Databáze 1.
Diář 1 Kalendář. Diář Základem diáře je kalendárium, ve kterém můžeme prohlížet jednotlivé měsíce Základem diáře je kalendárium, ve kterém můžeme prohlížet.
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ý.
NÁZEV ŠKOLY:SOŠ Net Office, spol. s r.o. Orlová Lutyně
4b. Makra Visual Basic pro Microsoft Excel
Úvod do Pythonu – IO operace se soubory.
Prezentační nástroj Open Office, Impress ZÁKLADY PRÁCE
Programovací jazyk C++
KIV/ZD cvičení 9 Tomáš Potužák.
Algoritmizace a programování
Strukturované typy proměnných v programovacím jazyce Pascal - 2.hodina
Dávkové soubory Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
5a. Makra Visual Basic pro Microsoft Escel
Podprogramy.
MU002 – Informační technologie Základy algoritmizace 5/13
CU01 Informatika II 2/13 Základy algoritmizace
Transkript prezentace:

Soubory s náhodným přístupem Vytváření adresáře

Adresář Úkolem je vytvořit jednoduchý adresář, ve kterém zapisujete jméno a adresu Údaje budou uloženy do textového souboru, pro který zvolíte příponu.adr

Záznam 1 Údaje o každé osobě v adresáři ukládáme jako záznam (record) Tyto záznamy se ukládají do textového souboru otevíraného v módu random Pro vytvoření záznamu musíme nejdříve vytvořit jako uživatelský typ Tento typ nelze vytvořit ve formuláři  musíte si otevřít modul

Záznam 2 Záznam může vypadat takto: Používá se typ string*X – řetězec pevné délky Type PokusZaznamType Jmeno As String * 30 Prijmeni As String * 30 Ulice As String * 30 Mesto As String * 30 PSC As String * 5 End Type

Záznam 3 Po vytvoření typu se hned může vytvořit záznam, který bude používán v programu Takto vytvořený záznam, jehož délku určíme pomocí funkce Len, použijeme pro záznam adresy Public PokusZaznam As PokusZaznamType

Potřebné proměnné Pro práci s programem potřebujeme min. 3 proměnné – uložíme je do modulu Určují celkový počet záznamů, ukazují na právě zpracovávaný záznam a oznamují, že byl zpracovávaný záznam změněn Public PocetZaznamu As Integer Public Aktualni As Integer Public Zmenen As Boolean

Start programu Při startu programu nastavujeme pouze to, že soubory, ve kterých ukládáme adresář, mají koncovku.adr – jde o prostý textový soubor Mimo to si připravíme proměnnou, pomocí které budeme sledovat otevřený soubor Private Sub Form_Load() FileNum = FreeFile File1.Pattern = "*.adr" End Sub

Otevření adresáře 1 Po klepnutí na název souboru se vykonají následující funkce: Do proměnné FileName se načte celá cesta k vybranému souboru Do proměnné FileName se načte celá cesta k vybranému souboru Do proměnné RecordLen se vloží délka záznamu pomocí funkce Len Do proměnné RecordLen se vloží délka záznamu pomocí funkce Len FileName = Dir1.Path + "\" + File1.List(File1.ListIndex) RecordLen = Len(PokusZaznam)

Otevření adresáře 2 Otevře se vybraný soubor Otevře se vybraný soubor Vypočte se počet záznamů v souboru Vypočte se počet záznamů v souboru Proměnní Aktualni se nastaví na 1 Proměnní Aktualni se nastaví na 1 Open FileName For Random As #FileNum Len = RecordLen PocetZaznamu = LOF(FileNum) \ RecordLen Aktualni = 1

Otevření adresáře 3 Zobrazí se 1. záznam v adresáři pomocí procedury ShowRecord Zobrazí se 1. záznam v adresáři pomocí procedury ShowRecord Nastaví se ukazovátko na 1. položku v adresáři (Jméno) Nastaví se ukazovátko na 1. položku v adresáři (Jméno) Get #FileNum, Aktualni, PokusZaznam Text1(0).Text = PokusZaznam.Jmeno Text1(1).Text = PokusZaznam.Prijmeni Text1(2).Text = PokusZaznam.Ulice Text1(3).Text = PokusZaznam.Mesto Text1(4).Text = PokusZaznam.PSC Zmenen = False End Sub Text1(0).SetFocus

Změna záznamu Záznam můžeme upravit – přepsat, doplnit Při každé změně se nastaví hodnota proměnné Zmenen na True Poslouží k tomu procedura připojená k události Change Private Sub Text1_Change(Index As Integer) Zmenen = True End Sub

Posun mezi záznamy Při posunu mezi záznamy měníme hodnotu proměnné Aktualni – kontrolujeme, zda nejsme mimo rozsah (1 – (1 – PocetZaznamu) Nejprve ale zkontrolujeme, zda došlo ke změně v předchozím záznamu – zda je proměnná Zmenen nastavena na True Pokud došlo ke změně, voláme proceduru UpravZaznam

Procedura UpravZaznam Procedury ShowRecord a UpravZaznam jsou uloženy jako Public v části General Public Sub UpravZaznam() PokusZaznam.Jmeno = Text1(0).Text PokusZaznam.Prijmeni = Text1(1).Text PokusZaznam.Ulice = Text1(2).Text PokusZaznam.Mesto = Text1(3).Text PokusZaznam.PSC = Text1(4).Text Put #FileNum, Aktualni, PokusZaznam Zmenen = False End Sub

Uzavření adresáře Po kliknutí na tlačítko Konec se Byl-li záznam změněn, uložíme jej Byl-li záznam změněn, uložíme jej Uzavřeme soubor adresáře Uzavřeme soubor adresáře Ukončíme program Ukončíme program Private Sub Konec_Click() If Zmenen Then UpravZaznam Close FileNum End End Sub

Přidání záznamu 1 Při přidávání záznamu uložíme – pokud byl změněn – otevřený záznam, zvýšíme počet záznamů a upravíme Aktualni If Zmenen Then UpravZaznam Text1(0).Text = "" Text1(1).Text = "" Text1(2).Text = "" Text1(3).Text = "" Text1(4).Text = "" PocetZaznamu = PocetZaznamu + 1 Aktualni = PocetZaznamu Zmenen = False Text1(0).SetFocus

Přidání záznamu 2 Do otevřeného prázdného záznamu můžeme zapisovat údaje nové položky adresáře Jestliže přejdeme na jinou položku nebo adresář zavřeme, údaje se zapíší na konec souboru adresáře

Zrušení záznamu 1 Při rušení záznamu musíme vymazat vybraný záznam a zbylé záznamy, které mají větší pořadové číslo než rušený, posunout v souboru o 1 níže Nejprve nadefinujeme potřebné proměnné: Dim Ind As Integer Dim TempVar As PokusZaznamType

Zrušení záznamu 2 Ověříme si, že uživatel opravdu chce položku vymazat V cyklu přesuneme zbylé záznamy Zda = MsgBox("Opravdu chcete zrušit tento záznam?", 65) If Zda = vbOK Then For Ind = Aktualni To PocetZaznamu Get #FileNum, Ind + 1, TempVar Put #FileNum, Ind, TempVar Next Ind

Zrušení záznamu 3 Nakonec upravíme počet záznamů, zkontrolujeme, že ukazovátko Aktualni je v rozsahu a zobrazíme záznam PocetZaznamu = PocetZaznamu - 1 If Aktualni > PocetZaznamu Then Aktualni = PocetZaznamu End If ShowRecord

Vytvoření nového adresáře 1 K programu připojíme druhý formulář (dle obrázku) Otvíráme jej po kliknutí na tlačítko pomocí metody Show Private Sub Command1_Click() Form2.Show End Sub

Vytvoření nového adresáře 2 Po vložení názvu adresáře začneme s vytvářením uzavřením starého a vytvořením adresy nového adresáře S novou adresou otevřeme adresář – soubor se tím vytvoří Private Sub Command1_Click() If Zmenen Then Form1.UpravZaznam Close (FileNum) FileNameNew = Form1.Dir1.Path+ "\" + NewAddress.Text + ".adr" RecordLen = Len(PokusZaznam) Open FileNameNew For Random As #FileNum Len = RecordLen

Vytvoření nového adresáře 3 Nastavíme proměnné – počet záznamů a ukazovátko Uzavřeme formulář, zobrazíme prázdný záznam a obnovíme záznam v adresáři PocetZaznamu = 1 Aktualni = 1 Form2.Hide Form1.ShowRecord Form1.File1.Refresh

Třídění záznamů Velmi užitečnou možností u každého adresáře je vyhledávání podle abecedy Máte-li v adresáři 10 jmen, tak je snadno projdete všechny Ovšem při, řekněme 12O adresách, …

Porovnávání řetězců Většina programovacích jazyků vznikla v prostředí, kde je domovským jazykem angličtina Umějí proto bez problémů rozhodnout, který řetězec je větší, právě v angličtině If Trim(arg1) < Trim(arg2) Then ‘ arg2 je větší než arg1 Else ‘ naopak End If

Porovnávání řetězců Pro češtinu si musíme porovnávací funkci napsat sami

Porovnávání řetězců Základem je komparační řetězec, ve kterém jsou seřazeny všechny znaky abecedy Jednotlivá písmena převádíme pomocí funkce InStr na pořadí písmena v komparačním řetězci Tato čísla pořadí porovnáme a podle toho rozhodneme Dim CompaString As String CompaString = "AÁBCČDĎEÉĚFGHIÍJKLMNOÓPQRŘSŠTŤUÚŮVWXYÝZŽ" a1 = InStr(CompaString, UCase(Mid(arg1, x, 1)))

Setřídění adres Nejprve si připravíme pole Adresar Do tohoto pole si z již dříve otevřeného souboru načteme celý adresář Type PokusZaznamType Jmeno As String * 30 Prijmeni As String * 30 Ulice As String * 30 Mesto As String * 30 PSC As String * 5 End Type Public PokusZaznam As PokusZaznamType Dim Adresar() As PokusZaznamType For I = 1 To PocetZaznamu Get #FileNum, I, Adresar(I) Next

Setřídění adres Pole Adresar setřídíme známým postupem A nakonec všechno zapíšeme zpátky do souboru Do Kontrol = False For I = 1 To PocetZaznamu - 1 If Compare(Adresar(I).Prijmeni, Adresar(I + 1).Prijmeni) Then Temp = Adresar(I + 1) Adresar(I + 1) = Adresar(I) Adresar(I) = Temp Kontrol = True End If Next Loop While Kontrol For I = 1 To PocetZaznamu Put #FileNum, I, Adresar(I) Next

Další možnosti Adresář můžeme doplnit o možnost vkládání poznámek Adresář můžeme spojit s adresářem a zkombinovat vkládání poznámek k osobám a datům A dále co vás napadne…