Makrá v OpenOffice.org 3/III. – Práca so súbormi

Július Pastierik  /  06. 04. 2006, 00:00

V tomto dieli si popíšeme základné funkcie pre prácu s externými súbormi, do ktorých si budeme následne ukladať naše nastavenia.

V minulom dieli sme si ukázali niekoľko možností, ako môžeme využiť správy pre riadenie programu. Doterajšie riešenia však mali jednu nevýhodu – buď sme naprogramovali dve makrá, alebo sme pri každom spustení zadávali čo chceme vlastne urobiť. Omnoho zaujímavejšie je však urobiť niektoré makrá tak, aby si každý používateľ mohol v inom (nazvime ho inicializačnom) podprograme nastaviť také parametre, aké chce a potrebuje. Ostatné makrá sa potom, pochopiteľne, správajú podľa týchto nastavení. Pre praktickú stránku veci je však potrebné, aby sa tieto nastavenia uložili, t.j., aby sme ich nemuseli znovu zadávať pri novom spustení OpenOffice.org.

Na to, aby sme si nastavenia pamätali aj po skončení nejakého programu ich musíme uložiť do nejakého pracovného súboru. Pretože v OpenOffice.org je v tejto oblasti najjednoduchšie použitie textových súborov, zameriame sa na prácu s nimi.

Pre prístup k súborom musíme použiť niekoľko štandardných príkazov a funkcií. Samozrejme, ako prvá nás bude zaujímať funkcia „Open“, pomocou ktorej dokážeme súbor nielen otvoriť, ale aj vytvoriť:

Open Meno_súboru [For Mód] [Access Typ_prístupu] [Ochrana] As #Číslo_súboru [Len=Dĺžka_záznamu]
Jednotlivé parametre majú nasledovný význam:

Meno_súboru je reťazec, ktorý obsahuje názov súboru vrátane prístupovej cesty. Pri názvoch súborov sa používa URL formát, t.j. „file:///…“. Pre prípadný prevod medzi systémovým a URL formátom môžeme použiť funkciu ConvertToUrl(systémový_názov), alebo naopak pre opačný prevod funkciu ConvertFromURL(URL_názov).

Za kľúčovým slovom For môžeme určiť režim práce so súborom, pričom môžeme zadať jednu z nasledujúcich hodnôt:
Append – rozšírenie existujúceho súboru.
Binary – k dátam budeme pristupovať binárne pomocou funkcií Put a Get.
Input – otvorenie existujúceho súboru pre čítanie. Pokus o otvorenie neexistujúceho súboru vedie ku chybe.
Output – vytvorenie nového súboru (alebo prepísanie existujúceho súboru) pre zápis.
Random – úprava relatívnych súborov.

Za kľúčovým slovom Access určujeme prístup k súborom, pričom môžeme zadať jednu z nasledujúcich hodnôt:
Read – iba pre čítanie.
Write – iba pre zápis.
Read Write – pre čítanie aj zápis.

Ako ďalší parameter môže byť spôsob ochrany zdieľania súboru inými aplikáciami, pričom tu môžeme zadať jednu z nasledujúcich hodnôt:
Shared – súbor môžu otvoriť aj iné aplikácie.
Lock Read – súbor je chránený proti čítaniu.
Lock Write – súbor je chránený proti zápisu.
Lock Read Write – zabránenie prístupu k súboru.

Za znakom „mreža“ nasleduje číslo súboru, t.j. dátového kanálu, na ktorom budeme k nemu pristupovať. Môže nadobudnúť hodnotu od 0 do 511 a toto číslo získame tesne pred otvorením súboru pomocou funkcie FreeFile. Toto číslo je dôležité, pretože odteraz budeme k súboru pristupovať už iba pomocou neho.

V poslednom parametri „Len“ môže byť určená dĺžka záznamu, ktorú používame v relatívnych súboroch.

V našich makrách sa budeme teraz zaoberať iba jednoduchými textovými súbormi a preto si ukážeme prácu iba s nimi. Ostatné typy (napr. binárne súbory) a možnosti (napr. zdieľanie) sú určené pre skúsenejších programátorov. Textové súbory môžeme môžeme vytvoriť napríklad takto:

dim subor_nastaveni as string
dim subor as integer

subor_nastaveni="file:///c:/Program files/OpenOffice.org 2.0/Formatuj.dat"
subor = Freefile
open subor_priznakov for Output as #subor

A následne ich môžeme otvoriť pre načítanie zapamätaných údajov takto:

dim subor_nastaveni as string
dim subor as integer

subor_nastaveni="file:///c:/Program files/OpenOffice.org 2.0/Formatuj.dat"
subor = Freefile
open subor_priznakov for Input as #subor

Pre zapisovanie do textových súborov sa používa funkcia „Print“ v nasledovnom tvare:

Print #Číslo_súboru, dáta
Pre čítanie už uložených údajov budeme používať funkciu „Line input“:

Line Input #Číslo_súboru, reťazcová_premenná
Nakoniec práce je potrebné otvorený súbor zatvoriť, čo urobíme pomocou príkazu „Close“:

Close #Číslo_súboru


Na základe tých poznatkov by sme teraz mohli naprogramovať procedúry pre načítavanie a ukladanie našich nastavení, ale to si ukážeme až nabudúce.

Na budúce: Nastavovacie súbory v praxi, alebo, ako to naprogramovať, aby nedošlo ku žiadnej chybe.


Neprehliadnite: