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.

 
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
 
 
woo jaw demo hz