Programovanie makier v LibreOffice: Formátovanie funkcií CCur, Hex a Oct

LO V tomto článku si ukážeme formátovanie prevažne číselných argumentov pre funkcie CCur , Hex a Oct .  

Testujeme funkciu CCur

Funkcia CCur vracia menu. Rozsah návratovej hodnoty je od -922 337 203 685 477.5808 do 922 337 203 685 477.5807! Čiže premenná typu mena môže obsahovať najviac 15 čísiel pred desatinnou čiarkou a 4 za desatinnou čiarkou. Táto premenná sa využíva hlavne pri finančných operáciách. Fajn, poďme si danú funkciu CCur otestovať.

1. príklad: Testujeme formátovanie funkcie CCur

Sub macro  REM začiatok makra
On Error Resume Next  REM ak nastane chyba, nech makro beží ďalej
Dim i As Integer   REM deklarácie premenných
Dim retazec As String
Dim pole()
REM naplňujeme naše pole
pole() = Array(6, 100, 15499, -1566, -89898989, 1000000000000000, "878", "-45454566145555555557", 11.454, 45.77889, -101.4444, -777.77777, "788.777789", &HBB2, &HCCB7, &HDFDC)
REM v cykle experimentujeme s funkciou CCur
For i = LBound(pole()) To UBound(pole())
        retazec = retazec & i+1 & " CCur(" & pole(i) & ") = "
        retazec = retazec & CCur(pole(i))
        retazec = retazec & Chr(10)
Next 
REM výpis na obrazovku 
MsgBox retazec
End Sub  REM koniec procedúry

Vidíme testovanie funkcie CCur Vidíme testovanie funkcie CCur

Rozbor makra:
Takže zhrňme si najdôležitejšie body, ktoré sú dôležité:
1 CCur(6) = 6.0000 – k číslu 6 pridá desatinnú čiarku a štyri 0 za desatinnou čiarkou
6 CCur(1E+15) = – prekročili sme maximálnu hodnotu
9 CCur(11,454) = 11.4540 – racionálne číslo doplní ešte jednou nulou
10 CCur(45,77889) = 45.7789 – 5 pozícia za desatinným číslom sa zaokrúhli
13 CCur(788.777789) = 788.7778 – ani získanie meny z reťazca nerobí problém

Testujeme funkcia Hex

Funkcia Hex nám vracia reťazec predstavujúci hexadecimálnu podobu čísla, čiže šestnásťkovú číselnú sústavu.

Syntax funkcie Hex je nasledovná:
Hex(nejaké číslo ako argument)

Poďme na druhý príklad, kde si ukážeme pár argumentov pre funkciu Hex.

2. príklad: Testujeme argumenty funkcie Hex

Sub macro  REM začiatok makra
On Error Resume Next  REM ak nastane chyba, nech makro beží ďalej
Dim i As Integer   REM deklarácie premenných
Dim retazec As String
Dim pole()
REM naplňujeme naše pole
pole() = Array(6, 100, 15499, 1000000000000000, "878", 11.554, 45.77889, "788.777789", &HBB2, &HCCB7, &HDFDC, "&HA2", "&HBC5")
REM v cykle experimentujeme s funkciou Hex
For i = LBound(pole()) To UBound(pole())
        retazec = retazec & i+1 & " Hex(" & pole(i) & ") = "
        retazec = retazec & Hex(pole(i))
        retazec = retazec & Chr(10)
Next 
REM výpis na obrazovku 
MsgBox retazec
End Sub   REM koniec procedúry

Výsledok činností makra Výsledok činností makra

Rozbor makra:
Body, ktoré je dobré spomenúť:
2 Hex(100) = 64 – hexadecimálna hodnota desiatkového čísla 100 je 64
4 Hex(1E+15) = – pretečenie
5 Hex(878) = 36E – číslo v reťazci nie je problémom
13 Hex(&HBC5) = BC5 – z hexadecimálneho čísla do hexadecimálneho čísla, trochu bizarné ale poučné

Na záver funkcia Oct

Funkcia Oct má veľa spoločného s funkciou Hex, až na jednu kľúčovú vlastnosť. Vracia osmičkovú podobu čísla, nie hexadecimálnu!

3. príklad: Testujeme argumenty funkcie Oct

Sub macro  REM začiatok makra
On Error Resume Next  REM ak nastane chyba, nech makro beží ďalej
Dim i As Integer   REM deklarácie premenných
Dim retazec As String
Dim pole()
REM naplňujeme naše pole
pole() = Array(6, 100, 15499, 1000000000000000, "878", 11.554, 45.77889, "788.777789", &HBB2, &HCCB7, &HDFDC, "&HA2", "&HBC5")
REM v cykle experimentujeme s funkciou Oct
For i = LBound(pole()) To UBound(pole())
        retazec = retazec & i+1 & " Oct(" & pole(i) & ") = "
        retazec = retazec & Oct(pole(i))
        retazec = retazec & Chr(10)
Next 
REM výpis na obrazovku 
MsgBox retazec
End Sub   REM koniec procedúry

Výsledok činností makra Výsledok činností makra

Ukázali sme si v tomto diely i v tých minulých formátovanie niektorých funkcii. Zatiaľ sme sa dátumu a času úspešne vyhýbali, pri tom táto problematika patrí medzi dôležité formátovacie úskalia. Konečne nastala chvíľa, kedy sa môžeme nato vrhnúť, tak sa máte načo tešiť.

(Jako ve škole) Průměr: 1.00 | Hodnotilo: 2
 

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