Programovanie makier v LibreOffice: Úvod do súborov

LO.png Prvý článok novej kapitoly, ktorá má za cieľ priblížiť problematiku manipulácie súborov a ich využitia v makrách. Okrem úvodu do súborov sa dozviete o dvoch funkciách, pričom jedna z nich dokáže konvertovať systémovú adresu súborov do URL adresy a druhá opačne.  

Úvod do nového smeru seriálu

Tento diel je pilotný v novej kapitole tohto seriálu, ktorá sa bude zaoberať súbormi. Doteraz sme sa venovali rôznym formátovacím technikám a zároveň sme si vysvetľovali základy jazyka StarBasic. Je čas sa posunúť ďalej a ukázať vám pokročilejšie oblastí programovania makier v LibreOffice. Zároveň chcem, aby tie ďalšie diely neboli len „copy-paste“ nejakej knižky, preto sa budem snažiť spúšťať programy na najnovších verziách LibreOffice a budem vám ponúkať svoje postrehy a skúseností pri vývoji. 

Súbory

Čo sú to súbory? Skúsme sa nato pozrieť jednoducho, bez potreby hľadať komplikované definície na internete. Napríklad, máte video súbor. Čo obsahuje? Nejaké grafické dáta a ak video nie je nemé, tak aj zvukové dáta. Potom máme aj iné typy súborov. Napríklad textový súbor, alebo nejakú databázu. Z toho môžeme vydedukovať, že súbor obsahuje nejaké dáta v rôznej podobe. Ďalej tieto dáta musia byť niekde uložené že? Typickými úložiskami sú pevné disky, USB, pamäťové karty a pod.

Takže môžeme povedať, že súbory charakterizujú dva hlavné body:

  • obsahujú dáta
  • musia byť niekde uložené

V tomto dieli a v tých budúcich sa naučíme s pomocou makier pracovať so súbormi. Čo môžete robiť s takýmito súbormi? Napr. editovať, premiestňovať či ich mazať.

Prevod zo systémovej do URL adresy a naopak

Ako sme povedali, každý súbor je niekde uložený v pamäťovom médiu. Aby sme mohli medzi tými všetkými priečinkami nájsť súbor, potrebujeme vedieť jeho adresu, čiže ako sa k nemu dostať. Túto cestu volajme systémová adresa. Taktiež poznáme ešte jeden typ cesty k súboru, ktorý sa označuje ako URL adresa. Internet je globálna sieť počítačov, ktoré si medzi sebou vymieňajú napr. súbory. Tieto súbory musia mať na internete svoje miesto, čiže sú niekde uložené a URL adresa sa používa ako cesta k danému súboru v rámci sieti. Samozrejme, je to zjednodušený pohľad, ale pre naše účely postačujúci.

Prečo to potrebujete vedieť? Môže sa stať, že chcete rýchlo konvertovať systémovú adresu do URL adresy. A naopak. Na tieto účely sa používajú funkcie ConvertToURL() a ConvertFromURL(), ktoré StarBasic pozná. Ukážeme si v praxi oba tieto funkcie. Taktiež i odlišnú aplikáciu v Linuxe a Windowse. Ako isto viete (alebo tušíte), majú iné zápisy systémových adries súborov.

Sub convertPATH
Dim linux_adresa, windows_adresa, url_adresa_1, url_adresa_2 As String

linux_adresa = "/home/Games/World_of_Warcraft/run.cpp"
url_adresa_1 = ConvertToURL(linux_adresa)

windows_adresa = "C:\Games\World_of_Warcraft\run.exe"
url_adresa_2 = ConvertToURL(windows_adresa)

MsgBox url_adresa_1 & Chr(10) & url_adresa_2

End Sub

01pics.png

Adresy súborov sú vymyslené, ale sú upravené tak, aby .exe súbor nebol v Linuxe. Predsa, nie je tento typ formátu súboru práve bežný v Linuxe.

Teraz skúsme naopak, konvertovať URL adresu do systémovej adresy.

Sub convertPATH
Dim linux_adresa, windows_adresa, url_adresa_1, url_adresa_2 As String

url_adresa_1 = "file:///home/Games/World_of_Warcraft/run.cpp"
linux_adresa = ConvertFromURL(url_adresa_1)

url_adresa_2 = "file:///C:/Games/World_of_Warcraft/run.exe"
windows_adresa = ConvertFromURL(url_adresa_2)

MsgBox linux_adresa & Chr(10) & windows_adresa

End Sub

02pics.png

URL adresa sa okrem internetu môže použiť pre prípady, kedy je v názve súboru alebo priečinku, špeciálny znak. Typickým špeciálnym znakom je medzera. V príkazovom termináli je medzera napr. v názve súboru dosť problém. Riešením problému môže byť práve využitie URL adresy. Medzeru definuje ako %20.

Sub convertPATH
Dim linux_adresa, windows_adresa, url_adresa_1, url_adresa_2 As String

linux_adresa = "/home/Games/World of Warcraft/run.cpp"
url_adresa_1 = ConvertToURL(linux_adresa)

windows_adresa = "C:\Games\World of Warcraft\run.exe"
url_adresa_2 = ConvertToURL(windows_adresa)

MsgBox url_adresa_1 & Chr(10) & url_adresa_2

End Sub

03pics.png

Námet na tento článok poslúžili tieto zdroje:

  • OpenOffice.org Macros Explained Third Edition, Andrew Pitonyak, page 166-168, dostupné online
  • Funkce ConvertToURL, help.libreoffice.org, dostupné online
  • Funkce ConvertFromURL, help.libreoffice.org, dostupné online
(Jako ve škole) Průměr: 1.00 | Hodnotilo: 2
 

Komentáře

user avatar neutr
Odpovědět
Programovanie makier v LibreOffice: Úvod do súborov
11. 03. 2019, 09:31:19
Je to sice správně, ale očekával jsem zejména praktické volání z uloženého dokumentu. To je potřebné nečastěji. Je to jen na jeden odstaveček. Stačí zavolat například Doc.URL, nebo ThisComponent.URL a s takto získanou proměnnou pracovat ConvertFromURL(Doc.URL). Podobně opačným směrem.

Při této operaci bude často požadavek na úpravu adresáře a to už je složitější. Z těch jednoduchých manipulací ještě třeba návod jak získat cizí URL (jiného dokumentu). Jednoduše zavoláme Hypertextový odkaz a pomocí dialogu vybereme soubor. Když hypertextový soubor nepojmenujeme (název - text překryje URL/URI) - zobrazí se URL tak že ji lze načítat z buňky sešitu (podobně Writer), respektive manuálně zkopírovat do makra.

Samozřejmě existují volání standardních adresářů jako je Temp, Dokumenty a podobně práce s Dir. Je toho celkem dost - například programování pomocí volání FilePicker. Takže nejspíš předbíhám. Omluva

Přidat názor

 

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích najdete v nápovědě. Diskuzi můžete sledovat pomocí RSS kanálu.

 
Eduard Boldižár

Eduard Boldižár

Som redaktorom stránky astrotech.cz. Mám 24 rokov. Čas trávim v IT škole. Medzi moje záľuby patrí astronómia, sci-fi literatúra a programovanie.

 
 
 
woo jaw demo hz