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.

 
EDU Trainings
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.

 

Public Relations

IPv4 zastarává, i tak si však zaslouží kvalitní zabezpečení

Znáte souvislost mezi doménami a typickými IP adresami? Není od věci si uvědomit, že zatímco domény jsou určeny pro zjednodušení hledání webové stránky na internetu, IP adresy slouží primárně pro výpočetní techniku, konkrétně pro přesné vyhledání konkrétního serveru nebo počítače.

Pokračování ...


AIMTEC
SAM v kostce 2019
 
 
woo jaw demo hz