Získanie separátoru v absolútnej ceste
Systémová cesta resp. presnejšie absolútna cesta k súboru v Linuxe a Windowse sa líši rozdielnosťou
separátorov, ktoré oddeľujú adresáre. Zatiaľ čo vo Windowse je separátor vyjadrený znakom
\, v Linuxe je to /. Ak by ste mali program, ktorý chcete využiť
na Linuxe aj vo Windowse, tak musíte vždy prehadzovať separátory. Avšak nezúfajte, tomuto nevďačnému úkonu sa
môžeme vyhnúť použitím funkcie getPathSeparator(). V nasledujúcej ukážke implementuje funkciu
getPathSeparator() vo Windowse.
Dim path As String
path = "C:" & getPathSeparator() & "Používatelia" & getPathSeparator() & "astronom" &
getPathSeparator() & "Pracovná plocha" & getPathSeparator() & "file.cpp"
MsgBox path
End Sub
Ak chceme ten istý program nasadiť na Linux, tak systémovú resp. absolútnu cestu k súboru mierne
upravíme, okrem separátoru. Vďaka funkcii getPathSeparator() nemusíme
prepisovať separátor a ak máte obzvlášť dlhé absolútne cesty
alebo ich máte v programe nadefinovaných veľmi veľa, tak vám
to ušetrí drahocenný programátorsky čas. Teraz
nasleduje ukážka programu v Linuxe.
Sub getPathLinux
Dim path As String
path = getPathSeparator() & "home" & getPathSeparator() & "astronomer" & getPathSeparator()
& "Plocha" & getPathSeparator() & "file.cpp"
MsgBox path
End Sub
Skúsme teraz program rozšíriť o konvertovanie absolútnej cesty do URL cesty a späť.
Sub getPathWindowsURL
Dim path, url_adresa As String
path = "C:" & getPathSeparator() & "Používatelia" & getPathSeparator() & "astronom" &
getPathSeparator() & "Pracovná plocha" & getPathSeparator() & "file.cpp"
url_path = ConvertToURL(path)
path2 = ConvertFromURL(url_path)
MsgBox "Absolútna cesta: " & path & Chr(10) & "URL cesta: " & url_path & Chr(10) &
"Absolútna cesta po prevode z URL cesty: " & path2
End Sub
Zistiť aktuálny adresár
Potrebujete zistiť aktuálny adresár, v ktorom pracuje vaše makro? Na tento účel poznáme funkciu CurDir(), ktorá zistí aktuálny adresár.
Sub currentDir
Dim currentPath As String
path = CurDir()
MsgBox "Aktuálny adresár: " & path
End Sub
Tvorba nových adresárov
Ak chceme vytvoriť nový adresár, využijeme funkciu MkDir(). Táto funkcia má argument path,
v ktorom definujete absolútnu cestu. Základnú implementáciu funkcie MkDir() si ukážeme
v nasledujúcom programe.
Dim path As String
path = "C:\Users\astro\Desktop\makra"
MkDir(path)
End Sub
Po spustení programu sa nám vytvoril adresár nazvaný ako makra. Je umiestnený na pracovnej ploche
vo Windows. Pri definovaní absolútnej cesty nezabudnite pridať na konci cesty názov adresáru, ktorý chcete
vytvoriť. Preto končí moja nadefinovaná absolútna cesta názvom budúceho priečinku makra. Obdobne to
funguje v Linuxe, len pozor na separátory.
Za argument funkcie môžeme použiť okrem absolútnej cesty aj URL adresu. Skúsme dať v ďalšom makre argument ako URL adresu, ktorú získame prevodom absolútnej cesty na URL adresu.
Sub createDir
Dim path As String
path = "C:\Users\astro\Desktop\makra"
url_path = ConvertToURL(path)
MkDir(url_path)
End Sub
Mazanie adresárov
Ak vieme vytvoriť adresár, tak zákonite by sme mali byť schopný ho aj vymazať. Na zmazanie adresára slúži
funkcia RmDir(). Rovnako ako MkDir(),
má jeden argument, ktorým definujeme absolútnu cestu k adresáru. Nasledujúca ukážka zhrňuje všetko,
čo sme si doteraz ukázal aj s implementáciou funkcie RmDir().
Sub deleteDir
Dim path As String
path = "C:\Users\astro\Desktop\makra"
url_path = ConvertToURL(path)
MkDir(url_path)
RmDir(url_path)
End Sub
Námet na tento článok poslúžili tieto zdroje:
OpenOffice.org Macros Explained Third Edition, Andrew Pitonyak, page 168-169, dostupné online
Funkce CurDir, help.libreoffice.org, dostupné online
Funkce MkDir, help.libreoffice.org, dostupné online
Funkce RmDir, help.libreoffice.org, dostupné online
Naučte sa vytvárať a mazať adresáre s pomocou jednoduchých funkcii. Tiež si povieme niečo o získavaní separátorov v
absolútnych cestách, ktoré sa líšia podľa operačných systémov.









