Programovanie makier v LibreOffice: Formátovanie čísel (4) – funkcie Fix, CVar, Chr a CDec

Vývoj V tomto článku nás čaká testovanie argumentov pre funkcie Fix, CVar, Chr a CDec.   

Funkcia Fix

Funkcia Fix zoberie číselný výraz a odstraní desatinnú čiarku. Návrátová hodnota funkcie je typ Double.

1. príklad: Testujeme argumenty pre funkciu Fix

Sub macro        

On Error Resume Next

Dim i As Integer
Dim retazec As String
Dim pole()

pole() = Array(r, popo, pr4, mongii, 45, 45454, 444815, -1045, -455255, 104.56, 2545.64, "455411", "4555455", "88878788", "-525", "-89", "84p", "o78", "87.2", "144.78", "151.44", "-167.444", "78,12", "254,99", "454,77", "-4578,77", "-8954,448", "p125,77", "127,45osel", &HA2, &HB7, &HC8)

For i = LBound(pole()) To UBound(pole())
        retazec = retazec & i+1 & " Fix(" & pole(i) & ") = "
        retazec = retazec & Fix(pole(i))
        retazec = retazec & Chr(10)
Next 

MsgBox retazec

End Sub

Výsledok makra Výsledok makra

Rozbor makra:

10 Fix(104,56) = 104 – vidíme, ako funkcia odstráni desatinnú čiarku

20 Fix(144.78) = 144 – problém nerobí ani vytiahnúť z reťazca

28 Fix(p125,77) = 0 – ak výraz nezačína číslom, tak vráti 0

29 Fix(127,45osel) = 127 – nemá problém vytiahnúť číslo a zaokrúhliť ani v takto definovanom výraze

Funkcia Chr

S funkciou Chr už máte od začiatku seriálu bohaté skúsností. Je to práve tá funkcia, s ktorou robíte nový riadok pri výpise. Robíte to konkretnejšie s Chr(10). Funkcia vezme hodnotu argumentu od 0 do 255 a vypíše znak. Číselne hodnoty znakov sa radia podľa ASCII tabuľky.

2. príklad: Testujeme argumenty pre funkciu Chr

Sub macro

On Error Resume Next

Dim i As Integer
Dim retazec As String
Dim pole()

pole() = Array(d,fdp, 0, 100, 255, 266, 1000, -10, -255, 10.6, 254.6, "11", "45", "88", "-25", "-89", "84p", "o78", "87.2", "144.78", "78,12", "254,99", "p125,77", "127,45osel", &HA2, &HB7, &HC8)

For i = LBound(pole()) To UBound(pole())
        retazec = retazec & i+1 & " Chr(" & pole(i) & ") = "
        retazec = retazec & Chr(pole(i))
        retazec = retazec & Chr(10)
Next 

MsgBox retazec

End Sub

Výsledok programu Výsledok programu

Funkcia CVar

Ako dobré tušíte, funkcia CVar vrácia premennú typu Variant.

3. príklad: Testujeme funkciu CVar

Sub macro        

On Error Resume Next

Dim i As Integer
Dim retazec As String
Dim pole()

pole() = Array(r, popo, pr4, mongii, 45, 45454, 444815, -1045, -455255, 104.56, 2545.64, "455411", "4555455", "88878788", "-525", "-89", "84p", "o78", "87.2", "144.78", "151.44", "-167.444", "78,12", "254,99", "454,77", "-4578,77", "-8954,448", "p125,77", "127,45osel", &HA2, &HB7, &HC8,)

For i = LBound(pole()) To UBound(pole())
        retazec = retazec & i+1 & " CVar(" & pole(i) & ") = "
        retazec = retazec & CVar(pole(i))
        retazec = retazec & Chr(10)
Next 

MsgBox retazec

End Sub

Výsledok makra Výsledok makra

Funkcia CDec

Funkcia vrácia číslo v decimálnom tvare.

4. príklad: Testujeme funkciu CDec

Sub macro        

On Error Resume Next

Dim i As Integer
Dim retazec As String
Dim pole()

pole() = Array(r, popo, pr4, mongii, 45, 45454, 444815, -1045, -455255, 104.56, 2545.64, "455411", "4555455", "88878788", "-525", "-89", "84p", "o78", "87.2", "144.78", "151.44", "-167.444", "78,12", "254,99", "454,77", "-4578,77", "-8954,448", "p125,77", "127,45osel", &HA2, &HB7, &HC8,)

For i = LBound(pole()) To UBound(pole())
        retazec = retazec & i+1 & " CDec(" & pole(i) & ") = "
        retazec = retazec & CDec(pole(i))
        retazec = retazec & Chr(10)
Next 

MsgBox retazec

End Sub 

Výsledok makra Výsledok makra

Rozbor makra:

17 CDec(84p) = 0 – stačí jeden nečíselný znak a vráti funkcia hodnotu 0.

28 CDec(p125,77) = 0 – rovnaký dôvod ako v predchadzajúcom bode

V budúcom článku si ešte predstavíme nejaké funkcie a tým skončí miniséria formátovania čísel. Potom nás bude čakať formátovanie času a dátumu.

(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.

 

Public Relations

SOS Security Week - interaktivní webináře

SophosOblíbený Security SOS Week je zpátky! … na přelomu června a července proběhne další ze série Security SOS Week, která vám pomůže zjistit, jak efektivně ochráníte vaši IT infrastrukturu před hackery a že malware je zpět v plné síle a i bezpečnost vašeho soukromí má dvě strany jako mince.

Pokračování ...


IT Systems - předplatné

Public Relations

Jak si zabezpečit servery?

DNSSECPokud chce moderní člověk plně využívat to, co mu virtuální svět internetu nabízí, musí se stále více orientovat na bezpečnost. Musí činit kroky, jež ho ochrání před riziky, jež se právě na této síti skrývají a dnes a denně uživatele ohrožují.

Pokračování ...


 
 
woo jaw demo hz