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.

 
 
 
woo jaw demo hz