Plugin Final Verification mi začal házet tyto chyby:
Při posledním použití někdy před týdnem to ještě nedělal.
Nicméně, asi tuším, odkud může vanout vítr. Já jsem si o víkendu změnil zobrazování datumu v systrayi u mě na Win 10 x64. Pomocí regionálních nastavení jsem si tam přidal zkratku dne v týdnu (já opravdu co chvíli nevěděl, který je den, mám práci, která je na dni v týdnu nezávislá, tak proto jsem si zapnul). Zkrátka dřív jsem tam míval klasické "16.04.2025", teď tam mám "st 16.04.2025".
Tedy zdá se to jako blbost, ale nenapadá mě jiný důvod. Nic jiného jsem nedělal, Geoget ani plugin jsem neaktulizoval už dlouho. Navíc informace, že "20.03.2025" je zjevně nesmyslná.
Je to mým nastavením datumu?
EDIT: ověřeno, je to tím. Vrátil jsem datum na Windows do původního stavu a problém není. Tedy až po restartu Geogetu.
Zkusmo jsem den v týdnu opět nechal zobrazovat, Geoget zůstal běžet a problém nemá. :-) Zjevně to záleží na stavu v době, kdy se Geoget spouští.
A neni to nejaka mrtvola? Posledni aktualizace pluginu byla v roze 2015 a od te doby se toho zmenilo fakt hodne. Namatkou neexistuje Evince, rada overovatek ma captchu nebo neco podobneho, overovani primo u gc.com, ...
Nevím, po uplynutí jaké doby od poslední aktualizace se plugin stává mrtvolou. Ale já bych to posuzoval spíš podle toho, jestli funguje nebo ne. A tohle funguje. Používám to na zaznamenávání datumu výpočtu finálky a typu - jestli bylo ověřeno, nebo jen vypočteno. Generuje to tag a má to vizualizační skript pro sloupec v Geogetu. To vše pořád funguje. On se Geoget nijak výrazně nezměnil.
Jo, k těm ověřovačům - o interním GC ověřovači samozřejmě neví, ale formulář geochecku to pořád plní spolehlivě, ověřovací číselka samozřejmě člověk musí u Geochecku naťukat sám.
Já se chtěl spíš zeptat, jestli není nějaký lapsus v Geogetu - přijde mi, že z nějakého důvodu nabízí pluginům "short date" ze systému. Opět jsem si v Regionálních nastaveních přidal zkratku dne před datum, restartoval Geoget a problém je zpět. Skript nehavaruje pouze v případě, kdy keš ještě nemá jeho tag nastaven. V takovém případě do tagu uloží moje nové datum včetně zkratky dne (!). A když na keši s tímto tagem znovu plugin spustím, už má problém s parsováním toho datumu a háže chybu.
Napadá mě, že stejný problém může přijít i u jiného pluginu pracujícího s datumem. Takto objekt s datumem vypadá v pluginu (je tam vidět i ta zkratka dnešního dne - "so")
Když systému řekneš, že shortdate formát obsahuje zkratku dne, tak překvapivě všechny aplikace, které ten shortdate formát používají, tak tam tu zkratku dne mít budou, či ji budou při konverzích očekávat. Takhle to prostě ve windows funguje!
Informace o dni v týdnu se opravdu nemá přidávat znásilněním formátu data. :huh: BTW - stačí si ten taskbar trochu roztáhnout na výšku na dva řádky, a ten den ti tam budou psát windows nativně. Jinak jen po najetí myši...
Pochopitelně nikdo nikoho nenutí, aby aplikace (potažmo plugin, v tomto případě) ten shortdate používal. Lze používat libovolný formát, nezávisle na nastavení systému. To je ale jen o tom, jak je ten plugin napsaný.
Se znásilňováním nechci mít nic společného , já si jen upravil datum pro zobrazení pod hodinama (že se dá roztáhnout taskbar na výšku vím, ale člověk přijde o další 1 cm místa, což u 16:9 monitorů asi nepodstoupí dobrovolně mnoho lidí).
Jenže jak zjišťuju, to opravdu není jen datum pro pravou část taskbaru, ale ten systém to cpe aplikacím. A využívá to taky třída TDateTime a zcela se z toho... pokaká. Dokonce se takové datum ani nemusí ve skriptu vyskytovat. Např. stačí třeba zavolat ve skriptu:
TimeObj := StrToDate('16.04.2024');
který mi se neupraveným shortdate fungoval. Nicméně teď dostávám výjimku: (Exception: "16.04.2024" is not a valid date). To samé, co v úvodním příspěvku.
Ach jo. Radši to měním zpět do výchozí podoby, kdo ví, co vše díky borcům z MS se mi ještě může po..... TDateTime používá zřejmě většina skriptů. Holt budu najíždět myší nad čas.
TDateTime za to opravdu nijak nemůže, a celou dobu funguje správně. Problém jsou jen konverzní funkce StrToDate a DateToStr, které pracují se systémovým formátem ShortDate, které je pro různé jazykové verze Windows jiné, a ještě do toho může uživatel sahat. Není divu, ty funkce jsou určené hlavně pro vypisování uživatelům, nikoliv pro strojové zpracování.
Proto Geoget v databázi tohle opravdu nepoužívá, a má tam buď floating point hodnotu z TDateTime, nebo pokud je třeba jen datum a je vhodná přímá lidská čitelnost, tak tam na to jsou funkce DateToInt a IntToDate, které pracují s "číslem" (ačkoliv uloženém rovnou jako string) ve formátu "yyyymmdd". Pokud si chce skript ukládat datum do tagu, byl by to vhodný formát.
Používáním strtoDate a DateToStr pro data v databázi je nevhodné nejen pro vrtochy uživatelů, ale i pro přenášení databáze mezi počítači, které mohou být nastavené každý jinak.