Opravená chyba pri funkcii CurDir()
V minulom článku sme sa venovali
funkčnosťou dvoch funkcii. Jednou z nich bola funkcia CurDir()
. Pri zadaní neexistujúcej jednotky
spadlo celé LibreOffice. Pri testovaní funkcie CurDir()
sme vtedy použili verziu LibreOffice
6.3.3.2. Skúsme overiť funkčnosť funkcie na aktuálnej verzii, ktorú máme k dispozícii, LibreOffice
6.4.1.2.
Nasleduje test, ak zadáme správne argument drive
, čiže jednotka existuje.
Sub actualDir MsgBox "Aktuálny adresár: " & CurDir("C") End Sub
Zadali sme správne argument drive
A teraz to skúsme cielene pokaziť zadaním neexistujúcej jednotky.
Sub actualDir MsgBox "Aktuálny adresár: " & CurDir("D") End Sub
Pri neexistujúcej jednotke dostávame
chybovú hlášku
Ak sme zadali neexistujúcu jednotku, konečne sme sa dočkali vytúženej chybovej hlášky miesto pádu celého LibreOffice. Som rád, že minulý článok pomohol opraviť túto chybu a hlavne sa chcem poďakovať používateľovi raal, ktorý tento problém nahlásil.
A čo funkcia ChDir()
?
Takže funkciu CurDir()
máme vybavenú. Ostáva sa vyjadriť k ChDir()
. Ta nám vôbec
nefungovala pri testovaní v minulom článku. Opäť sa musím poďakovať používateľovi raal za poslanie
podnetu do Bugzilla. Podľa tamojších
vyjadrení v zmienenej Bugzille je nepravdepodobné, že dôjde k nejakej oprave funkcie ChDir()
.
Takže nám zostáva nájsť nejakú náhradu za funkciu ChDir()
. Každý, kto používa napr. operačný systém
Linux Ubuntu, pozná príkaz cd
. A o tom bola funkcia ChDir()
, keď bola funkčná. Existuje
nejaká náhrada za túto funkciu? Ako sa to vezme. Nejaké náznaky prostredníctvom komentára poskytol používateľ
neutr v tomto článku. Nie je
to úplná náhrada za funkciu ChDir()
, ale poskytuje návod, ako napr. otvoriť súbor bez toho, aby ste
museli meniť aktuálne zvolený priečinok. O tomto spôsobe si povieme niekedy z budúcich článkov.
Na záver – funkcia ChDrive()
Aby sme boli kompletný, spomenie ešte funkciu ChDrive()
. Táto funkcia má zmeniť aktuálne zvolenú
jednotku na inú jednotku, napr. pevný disk, USB alebo pamäťovú kartu. Nasledujúci kód by mal zmeniť aktuálne vybranú
jednotku za jednotku externého pevného disku.
Sub actualDir MsgBox "Aktuálny adresár: " & CurDir() ChDrive("D") MsgBox "Aktuálny adresár: " & CurDir() End Sub
Aktuálne nastavený priečinok
Aktuálny adresár po využití funkcie
ChDrive()
Neprekvapivo zisťujeme, že po využití funkcie ChDrive()
sa nič nestalo. Takže aj táto funkcia je
nefunkčná tak, ako ChDir()
.