Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 16. 11. 2017 12:54:08

Jaroslav_1
Člen
Registrace: 10. 11. 2017
Příspěvků: 33

Záporné číslo jako návratová hodnota funkce GetSystemTicks()

Dobrý den všem,
prosím o pomoc při nalezení chyby v kódu:

Sub CLK_1
    Dim Doc As Object
    Dim Sheet As Object
    Dim Cell As Object
    Dim Vzorek_casu As Long
    Doc = ThisComponent
    Sheet = Doc.Sheets(0)
    Cell = Sheet.getCellRangeByName("A2")
    Vzorek_casu = getSystemTicks()
    Cell.Value = Vzorek_casu
End Sub

V buňce se mi objeví záporné číslo snižující se směrem k nule. Nevím, zda-li je to chyba, nenašel jsem zatím podrobnější popis této funkce. Děkuji.

Offline

#2 16. 11. 2017 13:00:47

Jaroslav_1
Člen
Registrace: 10. 11. 2017
Příspěvků: 33

Re: Záporné číslo jako návratová hodnota funkce GetSystemTicks()

Snižující se při opakovaném spuštění.

Offline

#3 16. 11. 2017 13:20:17

kabi
Člen
Registrace: 1. 6. 2017
Příspěvků: 172

Re: Záporné číslo jako návratová hodnota funkce GetSystemTicks()

pro zjištění počtu tiků musíte získat rozdíl mezi tiky, např.
...
Vzorek_casu = getSystemTicks()
... další příkazy makra ...
Vzorek_casu = getSystemTicks() - Vzorek_casu
Cell.Value = Vzorek_casu

Editoval kabi (16. 11. 2017 13:25:16)

Offline

#4 16. 11. 2017 13:54:57

Jaroslav_1
Člen
Registrace: 10. 11. 2017
Příspěvků: 33

Re: Záporné číslo jako návratová hodnota funkce GetSystemTicks()

Ano, tomu rozumím. Výsledek rozdílu bude kladné číslo. Tedy v kódu chyba není. O to mi šlo. Rád bych však věděl i to, jak je odečítání konstruováno, tj. kdy čítač dosáhne 0 a začne počítat znovu.

Offline

#5 16. 11. 2017 15:58:38

kabi
Člen
Registrace: 1. 6. 2017
Příspěvků: 172

Re: Záporné číslo jako návratová hodnota funkce GetSystemTicks()

jedná se o systémový čítač, ten se inicializuje při spuštění systému (zapnutí PC z vypnutého stavu nebo po restartu) a načítá do dalšího vypnutí/restartu nebo zřejmě do max. možné hodnoty, než přeteče. Mně se vaším původním makrem vrací kladná hodnota, která odpovídá času spuštění počítače (197842383 = 2 dny 6 hod 57 min ...)

Offline

#6 16. 11. 2017 18:55:53

Jaroslav_1
Člen
Registrace: 10. 11. 2017
Příspěvků: 33

Re: Záporné číslo jako návratová hodnota funkce GetSystemTicks()

Původní záporná hodnota odovídá Linuxu (Mint 17). Zkoušel jsem také ve W7, zde je návratová hodnota kladná a zvyšující se. Rozdíl tedy bude i ve W7 kladné číslo. Zkoušel jsem (v Linuxu) co nejdříve po zapnutí spustit makro a výsledek odpovídá asi 30-bitovému čítači. Přeteče tedy asi za 12,5 dne.

Editoval Jaroslav_1 (18. 11. 2017 16:06:56)

Offline

Zápatí