GeoGet

Complete geocaching solutions

User Tools

Site Tools


user:skript:combine

Combine

Skript slouží k automatizaci často opakovaného sledu akcí. Vytvořením dávky složené z několika postupných kroků zjednodušuje provádění složitějších činností a automatizuje je třeba až na jedno jediné kliknutí myši.

flag-english.jpg The script used to automate frequently repeated sequence of events. By creating a batch composed of several successive steps streamlines and automates complex operations should be up to a single mouse click.

Autor

Pokud se Vám doplněk líbí, kliknutím na tlačítko Donate můžete přispět na jeho vývoj.

Nekamarádíte se s PayPalem? Napište mi email a domluvíme se na jiném způsobu, třeba převodu na účet.

Automatická instalace

Nainstalovat do GeoGetu
Instalaci doplňku spustíte kliknutím na tlačítko vlevo. Následně budete v prostředí GeoGetu provedeni instalačním procesem. Pro zajištění této funkce je třeba mít na počítači již nainstalovaný a spuštěný program GeoGet .
Kliknuli jste na tlačítko a nic se nestalo? Máte opravdu spuštěný GeoGet ? Je to potřeba! Nebo možná máte zastaralý webový prohlížeč. Nevadí, instalaci doplňku můžete jednoduše vyvolat i prostým zkopírováním (označit text → klik pravým tlačítkem → kopírovat) následujícího odkazu do schránky: https://www.geoget.cz/doku.php/user:skript:combine?download

Diskuse

Diskuze o tomto skriptu je na Geocaching.cz.

Popis

Skript umožňuje automatizovat opakované provádění neměnné řady akcí a úkonů v GeoGetu (skupin událostí, dávky). Zároveň je nástrojem k definování, údržbě a spouštění těchto dávek. Každou dávku může tvořit jedna samostatná akce nebo jejich sled.

Z každé dávky lze:

  • vytvořit klasický ggp skript a jeho ikonu umístit na toolbar
  • vytvořit tzv. ggs skript a vytvořit zástupce pro spuštěni GeoGetu tak, aby se tento skript při svém startu spustil
  • vytvořit kopii (a tu modifikovat), tím se zjednodušuje vytváření dávek podobných jako již je některá dříve vytvořená

Počet dávek a počet akcí v dávce je neomezený. Správně sestavené dávky je možné snadno vyměňovat mezi uživateli. Takové dávky by neměly obsahovat absolutní cesty a nic, co by mohlo být závislé na konkrétním PC nebo instalaci GeoGetu.

Vzhledem k možnostem skriptu může být Combine také chápáno jako nástroj na strojové generování jiných jednoduchých skriptů.

Funkce

Funkce jsou rozdělené na operace s dávkou jako celkem a operace s jednotlivými příkazy v dávce.

Operace s dávkou

Pro přehlednost obsahuje každá dávka v seznamu i ikonu, kterou má na toolbaru. V seznamu zobrazených dávek je s každou z nich provádět následující operace:

  • založení nové dávky
  • přejmenování dávky
  • zkopírování dávky pro její modifikaci
  • vymazání dávky
  • úprava příkazů dávky
  • převedení dávky do ggp makra a její uložení do správce pluginů nebo i na toolbar pro snadné spuštění
  • odstranění dávky jak ggp makra ze správce pluginů i z toolbaru
  • převedení dávky do ggs makra a její uložení pro automatické spuštění při startu GeoGetu z vytvořeného zástupce
  • spuštění dávky (po provedení všech příkazů dávky bude plugin ukončen)
  • krokování dávky (před každým příkazem příkazem se plugin optá, zda pokračovat, plugin nebude automaticky ukončen)

Operace s příkazy

  • aplikace filtrů *.ggf
  • aplikace seznamů *.ggt
  • spouštění skriptů *.ggp.pas, *.gge.pas
  • spouštění dávkových souborů *.bat
  • spouštění programů *.exe
  • spouštění jiných definovaných dávek
  • použití uživatelských proměnných
  • podmíněné provádění příkazů (např. v závislosti na právě používané databázi)
  • změna komentáře (popisu) dávky
  • změna ikony dávky
  • uložení ikony dávky do BMP souboru
  • spouštění různých příkazů GeoGetu (spouštění programů asociovaných se souborem podle přípony - zadáním jména souboru, podpora přepínání databází, kopírování souborů, …)

Kurzivou napsané operace sice zdánlivě spadají do operací s dávkou jako celkem, ale tyto informace jsou uložené v INI souboru s jednotlivými příkazy a jsou v podstatě modifikováním dávky.

Správce skriptů, toolbar

Combine umožňuje pro každou skupinu vytvořit skript, ten uložit do Správce pluginů a případně i jeho ikonu umístit na toolbar. Všechny dávky uložené pro použití ve správci jsou ve skupině Combine 2 (společně s vlastním pluginem Combine).

Vymazání ikony z toolbaru lze udělat opět ve správci pluginů. K vymazání dávky i ze správce skriptů stačí vymazat příslušný soubor ggp.pas z adresáře Combine2\Batches. Pokud použijete v Combine funkci Z toolbaru, dávku odstraníte jak z toolbaru, tak i ze správce pluginů - funkce vymaže soubor s vytvořeným ggp makrem.

Ukázky

Seznam vytvořených dávekÚprava příkazů zařazených v dávceSeznam možných příkazů Combine

Pohledy pod pokličku

INI soubory

Ve verzi 2 je zcela přepracován způsob uložení příkazů dávek. Každá dávka má své příkazy uložené v samostatném INI souboru. Tím se značně zjednodušila a zpřehlednila jejich správa a jako bonus přibyla možnost předávat své dávky jiným uživatelům a snad se tak podělit o plody své práce (některé dávky mohou obsahovat třeba 20 i více příkazů a vymýšlet to může být nad něčí síly).

Všechny INI soubory dávek (podobně jako dávky připravené pro toolbar) jsou uloženy v adresáři Combine2\Batches.

(V hlavním adresáři pluginu je ještě INI soubor obsahující seznam možných příkazů a jejich parametry a INI soubor s konfigurací barev pro zobrazení jednotlivých příkazů v dávce. Zejména prvního z nich si doporučuji nevšímat!)

Pokud by to snad někoho zajímalo, tak každý z příkazů dávky je v INI souboru na jediném řádku. Slovo před = udává typ příkazu a první znak za ním může indikovat podmíněné zpracování.

  • + příkaz bude vykonán, pokud test platil
  • - příkaz bude vykonán, pokud test neplatil
  • pokud znak + ani - není uveden, bude příkaz vykonán bez ohledu na výsledek posledního testu

Některé typy příkazů mohou obsahovat parametry. V tom případě slouží znak | jako oddělovač parametrů od příkazu a případně i parametrů od sebe navzájem.

Ikony

Při vložení skriptu spouštějícího definovanou dávku na toolbar je implicitně použita interní ikona. Protože asi není vhodné mít v toolbaru třeba 5 stejných ikon s tím, že každá dělá něco jiného, je možné tuto standardní ikonu nahradit svou vlastní. Ikona je nedílnou součástí dávky a je ve formátu Base64 uložena v INI souboru dávky.

Ikona je běžný BMP obrázek velikosti 16 x 16 bodů, který používá max. 256 barev. Takovýto obrázek lze vytvořit v programu Malování (součástí instalace Windows) a uložením “jako obrázek se 256 barvami”. Barva bodu v levém spodním rohu je považována za průhlednou.

Předdefinované proměnné

  • %GG_CACHER% obsahuje nick uživatele GeoGetu (obecně se nemusí shodovat s %GS_USERNAME%)
  • (%GEOGET_OWNER% totéž jako %GG_CACHER%, zavedeno pro podporu dávek GeoJarry)
  • %GG_DATADIR% obsahuje cestu k datovému adresáři
  • %GG_SCRIPTDIR% obsahuje cestu do adresáře se skripty
  • %GG_PROGDIR% obsahuje cestu k programu GeoGet
  • %DBName% obsahuje jméno aktuální databáze
  • %Y%, %M%, %D%, %h%, %m%, %s%, %e% - proměnné obsahují datum a čas spuštění dávky, v dávce je lze přenastavit příkazem VarDateTime
  • od verze 2.0.13.24 jsou předchozí proměnné nahrazeny proměnnými %CombineYear%, %CombineMonth%, %CombineDay%, %CombineHour%, %CombineMin%, %CombineSec%, %CombineDateTime% (poslední hodnota je datum a čas jako desetinné číslo)
  • %CRLF% obsahuje odřádkování a slouží pro formátování textů zpráv, …
  • %GS_USERNAME%, %GS_PASSWDORD% obsahují přihlašovací informace k serveru geocaching.com. Hodnoty jsou při spuštění pluginu načtené ze souboru groundspeak.config.pas (pokud existuje, používá jej GeoJarry a mnoho jiných pluginů) a dávkou je možné jejich hodnotu přepsat a tím použít i jiného uživatele než je standardně používán

Proměnné lze použít kdekoli v jakékoli části příkazu nebo cesty. Před vlastním provedením příkazu dojde k náhradě za odpovídající hodnoty.

Uživatelské proměnné, proměnné prostředí systému

Skript umožňuje definovat a používat uživatelské proměnné pomocí samostatné skupiny příkazů. V souladu s Pascalem jako programovacím jazykem použitým pro skripty, jsou jména proměnných nezávislá na velikosti písmen. Předdefinovaná proměnná DBName obsahuje vždy jméno právě používané databáze.

Při definici proměnné (naplnění hodnoty) je v příkazech vždy použito jen její jméno. Tam, kde mu být použita hodnota proměnné, je třeba jméno obalit procenty %jmeno%.

Obecně jsou hodnoty proměnných ukládány a zpracovávány jako texty, ale při testování je možné předepsat jejich převod na číslo a testovat hodnotu jako číslo. Pokud dojde při převodu z textu k chybě (nečíselný znak), výsledkem bude vždy hodnota 0.

Kromě nastavování hodnot proměnných uživatelem je možné pracovat i s výsledkem poslední provedené akce ve skupině. Každá prováděná akce má výsledek 1 nebo 0 v závislosti na jejím úspěšném provedení a pomocí příkazu VarRet lze tuto hodnotu uložit do uživatelské proměnné.

Všude, kde je možné použít uživatelskou proměnnou, je také možné použít systémovou proměnnou prostředí (%USERNAME%, %WINDIR%, %APPDATA% a podobně). Před vlastním vykonáním příkazu dojde ke správné expanzi.

Pořadí nahrazování je (umím si představit situace, kdy je třeba to při tvorbě dávky zohlednit):

  1. předdefinované proměnné
  2. uživatelské proměnné
  3. systémové proměnné prostředí

Podmíněné provádění akcí a příkazů

Combine od verze 1.1.7. podporuje podmíněné provádění příkazů. Podmíněně lze provádět i několik příkazů. Protože každý příkaz si s sebou nese informaci o provedeni při platnosti nebo neplatnosti testu, je možné příkazy libovolně promíchávat a přesto si zachovají svou původní funkčnost. Dvojklik na kterémkoli příkaze dávky zobrazí se dialog, v kterém můžete upřesnit parametry i podmíněnost provádění.

Použití podmínek se asi nebude příliš líbit programátorům, ale já to dělal hlavně pro neprogramující uživatele a pro ně se mi zdá, že takto je to srozumitelnější než běžné programátorské konstrukce.

Při testech je možné používat uživatelské proměnné nebo textové či číselné hodnoty. Jména proměnných se od hodnot odlišují tím, že jména proměnných, která mají být pro vyhodnocení nahrazena hodnotou proměnné, jsou vždy ve tvaru %jmeno%. V opačném případě je text chápán jako string. Pokud jste zvyklí, můžete texty uzavřít do uvozovek, ale není to nutné. Ovšem pokud uvozovky použijete, musíte je použít na obou stranách porovnání.

Obecný postup podmíněného provádění je takovýto:

  • naplníme nějakou uživatelskou proměnnou
  • otestujeme hodnotu
  • příkazu nebo příkazům nastavíme příznak podmíněného provádění

Protože výsledek testu platí pro všechny příkazy až do dalšího testu, mohou být za sebou v libovolném pořadí příkazy podmíněné i nepodmíněné. Pořadí provádění je dáno pořadím v dávce a pak případně výsledkem testu.

Příklady použití podmínek

Příklad používající podmíněné zpracování vypíše informaci o tom, zda je použita implicitní databáze jménem geoget. Zapsaný v INI souboru dávky by mohl vypadat následovně:

  CMD=VarTest|"%DBName%"|"geoget"|=|Str
  CMD=+ShowMsg|Právě je používána databáze GEOGET
  CMD=-ShowMsg|Databáze GEOGET není aktuální databází

Druhý příklad ukáže výpis nalezených keší z databáze geoget. Pokud není požadovaná databáze aktivní, přepne na ni a pak aplikuje filtr pro zobrazení nalezených keší.

  CMD=VarTest|"%DBName%"|"geoget"|=|Str
  CMD=-DBSelect|geoget
  GGF_SET=Found.ggf

Třetí příklad zobrazí zprávu o možném ukončení dávky a případně ji ukončí. Jsou dvě možnosti testování - jako string:

  CMD=VarGetYesNo|STOP|Ukončit zpracování dávky?
  CMD=VarTest|"%STOP%"|"1"|=|Str
  CMD=+Stop

… jako číslo

  CMD=VarGetYesNo|STOP|Ukončit zpracování dávky?
  CMD=VarTest|%STOP%|1|=|Int
  CMD=+Stop

Trochu složitější příklad bude exportovat keše, podle odpovědí na dotaz. Exportujme tedy do GPS nenalezené keše nebo nenalezené i nalezené. A abychom si ukázali víc podmíněných příkazů za sebou, tak ještě v každém případě se bude exportovaný soubor jmenovat jinak. A ještě poznamenám, že je jedno v jakém pořadí budou poslední 2 příkazy.

  CMD=Default.ggf
  CMD=VarGetYesNo|Nalezene|Exportovat i nalezené keše?
  CMD=VarTest|%Nalezene%|1|=|Int
  GGF_SET=+Found.ggf
  GGE=-garmin.gge.pas|BezNalezenych.gpx
  GGE=+garmin.gge.pas|SNalezenymi.gpx

Příklady

Kromě níže uvedených příkladů je možné se inspirovat také již vytvořenými dávkami, které jiní uživatelé nabídli pro volné použití.

Práce s Registry

Práci s Registry si ukážeme na fragmentu dávky, která spouští program POI Loader. Ten se chová poněkud nepříjemně v tom, že požaduje interakci s uživatelem nebo, pokud pracuje v silent režimu, nelze mu zase předepsat adresář s daty a použije ten, s kterým pracoval naposledy. Po troše zkoumání snadno zjistíme, že informace o posledním spuštění má program uložené v registrech, takže vhodným nastavením jej vlastně můžeme přinutit ke požadované činnosti. Dáme si tedy následující úkoly:

  1. zjistit, kde je POI Loader nainstalován, abychom jej mohli z dávky spustit
  2. nastavit mu správný počáteční adresář
  3. spustit POI Loader v silent režimu (cílový adresář předáme v parametrech příkazové řádky)
  CMT=Získání cesty k POIloaderu
  CMT=.....Na Win7
  CMD=GetRegistryVal|HKLM\SOFTWARE\Wow6432Node\Garmin\Applications\POI Loader:InstallDir|PRG
  CMD=VarTest|%PRG%|""|=|Str
  CMT=.....Na 32 bitových Win, pokud předchozí příkaz neuspěl
  CMD=+GetRegistryVal|HKLM\SOFTWARE\Garmin\Applications\POI Loader:InstallDir|PRG
CMD=VarTest|%PRG%|""|=|Str
  CMD=+ShowMsg|Nepodařilo se najít instalovaný POI Loader.\nPřerušíme zpracovaní
  CMD=+Stop
  CMT=Nastavení zdrojové cesty pro načítání dat POI Loaderem
  CMD=SetRegistryVal|HKCU\Software\Garmin\POI Loader\Settings:Directory|string:%GG_DATADIR%\POI
  CMT=Spuštěni POI Loaderu v silent režimu se zápisem do adresáře GPS (připojena jako g:)
  EXE=%PRG%|/s /d g:\Garmin\POI

Keše ze 2 lokalit do GPS - podrobně

Mějme takovou běžnou úlohu: Chci aktualizovat keše v okolí mého bydliště a mé chaty a exportovat je do GPS. Z demonstrativních důvodů budu předpokládat, že mě nezajímají eventy, pro které mám vytvořený filtr Eventy.ggf. Předpokládám, že pro obě lokality je vytvořený filtr pro načtení seznamu keší (řekněme doma.ggf a chata.ggf). Spustím tedy skript Combine 2

  1. definuji novou skupinu “Doma - chata”
  2. do skupiny zařadím příkaz pro nastavení referenčního bodu HOME (předpokládám, že je vytvořen)
  3. přidám filtr ref10km.ggf (má nastaveny keše do okruhu 10 km)
  4. přidám změnu referenčního bodu na “Chata”
  5. přidám opět filtr ref10.ggf - automaticky je nastaveno přidávání do seznamu
  6. přidám filtr ještě filtr Eventy.ggf. Protože mě ovšem tyto keše nezajímají, změním tomuto filtru způsob aplikace na “Odebírá”. Tím by byl určen seznam keší.
  7. pokud keše opravdu budu chtít vždy aktualizovat (může to trvat velmi dlouho), doplním příkaz pro označení všech keší v seznamu (@ListSelectAll) a příkaz pro spuštění makra geojarry-listing.ggp.pas.
  8. export dat do GPX souboru zajistím doplněním skriptu gpxpq.ggp.pas s parametrem “%GG_DATADIR%\DomaChata.gpx” (uvozovky jsou důležité, protože cesta může obsahovat mezery)
  9. pro zkopírování vytvořeného souboru do GPS doplním spuštění cmd.exe s parametry /C “%GG_DATADIR%\DomaChata.gpx” E:\Garmin\GPX\DomaChata.gpx (předpokládám, že připojená GPS je vidět jako jednotka E:)
  10. uložím skupinu na disk tlačítkem Save
  11. připojím GPS a v záložce spustit ověřím její funkčnost
  12. mám-li touhu, vložím ikonu pro spouštění této skupiny do toolbaru (projeví se po restartu GeoGetu). Nemám-li zájem, aby byla v toolbaru, ale požaduji ji dostupnou ve Správci pluginů, odškrtnu ve Správci pluginů její zařazení na toolbar. Případně si mohu definovat i vlastní ikonku tlačítkem Ikona.

Hotovo. Od této chvíle mi stačí jediné kliknutí na to, abych dostal do GPS aktualizované keše z míst, kde se nejčastěji vyskytuji.

Poznámka: Kopírování vytvořeného exportního souboru pomocí programu cmd.exe je zde uvedeno víceméně pro demonstraci. Rozumnější by bylo jako parametr pro export uvést přímo cílový soubor v souborovém systému GPS (tedy řekněme ono E:\Garmin\GPX\DomaChata.gpx).

Nenalezené Významné stromy v Praze do GPS

Chtěl bych si zobrazit a do GPS exportovat všechny Pražské kešky zařazené do skupiny Významné stromy, které nemám dosud nalezené.

  1. Ze stránky významných stromů (http://vyznamnestromy.unas.cz/) si vytvořím seznam VyznamneStromy.ggt. Ten získám tak, že vezmu jen první sloupec keší zobrazených na této stránce a uložím jej do souboru.
  2. vytvořím si filtr, který použije všechny keše a polygon Prahy, ovšem zaškrtávátko “Je uvnitř” bude prázdné. Filtr bude tedy vybírat keše, které nejsou na území Prahy. Filtr pojmenuji KeseMimoPrahu (může se hodit i pro něco jiného než jsou Významné stromy).
  3. spustím skript Combine a vytvořím novou skupinu “Nenalezene Vyznamne stromy v Praze” a zařadím do ní seznam VyznamneStromy.ggt a odečtení filtru KeseMimoPrahu.ggf
  4. doplním spuštění exportu gpxpq.gpp.pas s parametrem E:\Garmin\GPX\VyznameStromyPraha.gpx (předpokládám, že připojená GPS je vidět jako jednotka E:)

(Jinou možností pro bod 1 a 3 je pomocí GeoJarry označit všechny keše série Významné stromy a vytvořit si filtr, který použije Tag kategorie Bookmark s příslušnou hodnotou.)

Kombinace více skupin

Do GPS chci nahrát keše v okolí domova a chaty tak, jak je definováno v 1. příkladu a pak všechny ostatní keše jako POI body.

  1. vytvořím novou skupinu “GPX a POI najednou”
  2. přidám příkaz pro spuštění skupiny “Doma - chata”
  3. přidám filtr All.ggf a nastavím mu '='
  4. nastavím referenční bod “HOME” a přidám odečtení filtru ref10.ggf
  5. nastavím referenční bod “Chata” a přidám odečtení filtru ref10.ggf
  6. přidám spuštění exportního skriptu do POI poigpx.gge.pas (autorem Medwyn_cz)
  7. přidám spuštění POILoader.exe (případně mohu doplnit parametr '/silent', který způsobí, že program se nebude na nic ptát a bude pracovat přesně ve stejném režimu jako při posledním spuštění - viz manuál k programu)
  8. uložím a na jedno spuštění dostanu do GPS dvě různé sady dat (předpokládá to ovšem, že před spuštěním skriptu bude připojena GPS)

Konfigurace, barvy

Jediná konfigurace mimo prostředí pluginu, která má podle mě nějaké opodstatnění, je úprava v souboru Combine.Colors.ini, který obsahuje barvu a řez fontu, kterým bude zobrazen příslušný typ příkazu v seznamu příkazů dávky.

Distribuce dávky jiným uživatelům

Vedlejším efektem změny uložení příkazů dávky do samostatného INI souboru je možnost předat ji ostatním uživatelům k použití. Autor dávky by měl pro ni vytvořit standardní gip soubor, do něhož uloží INI soubor a také všechny soubory, na kterých dávka závisí. Pochopitelně není třeba vkládat soubory, které jsou standardní. Naopak je možné doplnit třeba závislost na jiném gip balíčku, který bude, v případě potřeby, automaticky nainstalován (typicky by měla být uvedena závislost na Combine :-)).

Dávky, které jíní uživatelé připravili a nabídli ostatním, můžete najít na samostatné stránce.

Instalace

Během automatické instalace Combine verze 2 se plugin pokusí vyhledat dávky vytvořené starou verzí a převést je do formátu, kterému bude rozumět verze nová. Převod se netýká dávek uložených na toolbar, převedené dávky se na toolbaru ani ve správci pluginů automaticky neobjeví.

Předpokládám, že budou převedeny všechny dávky správně, ale jsem jenom člověk a co vím, co si kdo vymyslel a kde já udělal chybu. Proto se nová verze instaluje do jiného adresáře a původní verzi nechává na disku. To může ale způsobit i problémy. Pokud bude později aktualizována verze 2 a nebude starší verze 1 z disku odinstalována, aktualizace se pokusí opět převádět staré dávky a tím případně přepsat úpravy provedené později na již převedených dávkách. Uff, to je odstavec. Ale snad jste pochopili: pro prověření funkčnosti dávek v nové verzi je vhodné starou verzi Combine odinstalovat.

2.0.0 chybně převádí příkaz VarTest. Pokud test obsahuje text, ve staré verzi je uzavřen v uvozovkách (text bez uvozovek je považován za jméno proměnné). V nové verzi uvozovky být nemají (jméno proměnné je uzavřeno mezi znak %), ale při konverzi uvozovky odstraněny nejsou.

Poznámky, známé problémy

  • změny příkazů v dávce se projeví i na skriptu spouštěném z toolbaru nebo z menu Pluginy a není třeba pro ni znovu vytvářet nebo aktualizovat ikonu v toolbaru.
  • použití příkazu ListSelectAll je pro exporty zbytečné. Všechny exportní skripty by měly pracovat se zobrazeným seznamem keší, ne jen s označenými kešemi. Dosud jediným programem (resp. skupinou skriptů) o kterém vím, že pracuje s označenými kešemi v seznamu, je GeoJarry.
  • v příkazech pro zobrazení zprávy (ShowMsg a ShowMsgBreak) je možné použít znaky \n pro zalomení řádku
  • podmíněně mohou být prováděny všechna typy akcí a příkazů

Stažení

Stáhnout aktuální verzi: combine-2.0.14.28.gip

Seznam dostupných verzí

FilenameFilesizeLast modified
combine-2.0.14.28.gip121.0 KiB2022/04/18 20:46
combine-2.0.14.27.gip121.0 KiB2022/02/22 07:00
combine-2.0.14.26.gip120.6 KiB2022/02/15 18:50
combine-2.0.11.24.gip109.4 KiB2014/07/31 00:00
combine-2.0.11.23.gip107.1 KiB2014/02/04 00:00
combine-2.0.11.22.gip102.0 KiB2013/12/11 00:00

Seznam změn

2.0.14.28 (18.4.2022)

  • oprava postinstalacniho scriptu

2.0.14.27 (22.2.2022, staženo 324x)

  • oprava: do meta.ini doplněna závislost na GcApiLib (22.2.2022)
  • oprava: při instalaci jsou zkontrolované staré dávky a je jim doplněn příkaz pro použití SimpleJson (22.2.2022)

2.0.14.26 (15.2.2022, staženo 148x)

  • nový: podpora pro MTP
  • nový: DEMO dávka pro trochu sofistikovanější zkopírování GeoGetí databáze do MTP zařízení s a:Drake
  • nový: příkazy MtpPutDir a MtpGetDir
  • nový: příkazy MtpHideProgress
  • nový: převod nicku na RefCode
  • nový: převod jména bookmarku nebo PQ na RefCode
  • nový: stažení zazipovaného PQ přes API
  • změna: příkaz ListChangeSort přejmenován na ListSort
  • změna: přes API získání keší v bookmarku umožňuje získat i keše z watch/ignore/favorite list
  • změna: VarGetText má možnost implicitní hodnoty
  • změna: parametr REWRITE přejmenován na OVERWRITE, je třeba změnit starší dávky používající tento parametr
  • změna: seznam skupin a příkazů v nich je v samostatném INI souboru, není závislý na jazyku, proto je zbytečné jej udržovat v každém jazykovém INI
  • změna: při náhradě proměnných je možné nahradit %GG_REFNAME% za jméno aktuálního referenčního bodu
  • oprava: vyhledání keší přes API - vyhledání Wigo keší, možnost zadat stát, kraj
  • oprava: záměna popisu obou parametrů funkce MtpChooseDev
  • oprava: pro stahovaní byly ignorovány virtuální keše
  • oprava: kontrola existence adresáře při vytvoření nové dávky
  • oprava: doplněn překlad zprávy při vymazání dávky
  • oprava: po příkazu ListSort zůstávala neuvolněná paměť

:!: Zobrazit změny ve starších verzích

Skrýt změny ve starších verzích

2.0.13.24 (31.7.2014, počet stažení 6012)

  • nový: VarFilenameFromText - převod krátkého textu na jméno souboru, výsledek do proměnné
  • nový: VarUrlFromText - převod krátkého textu na URL, výsledek do proměnné
  • nový: DBDllRegistration - registrace DLL knihovny, která rozšiřuje databázové funkce
  • nový: SetEnvVar - nastavení proměnné prostředí systému (existuje jen při běhu dávky)
  • nový: VarRemove - odstraní definovanou proměnnou
  • změna: přejmenování jednopísmenných proměnných pro datum a čas
  • změna: ApiGetListingsByCfg v místech, kde jsou použity nicky, mohou být použity proměnné
  • změna: popis vnitřních proměnných %…%, formátování pomocí HTML
  • změna: implicitní skupina pro Combine je Combine 2 ve shodě s CMD_GROUP_NAME, aby jím vytvořené pluginy byly na stejném místě
  • oprava: překlep ve jméně proměnné CombineDay, funkce SetVarDateTime()
  • oprava: při kopírování dávky se kopírovala jiná než vybraná
  • oprava: ListRemovePermanent - oprava mazání, zůstávaly WP, …

2.0.12.23 (4.2.2014 počet stažení: 1383)

  • nové: TimerMsgToWindow odesílání zpráv oknu, umožňuje ukončovat dialogy konkrétním tlačítkem, volit funkce, … Neposílá zprávu oknu třídy Static, toho jde využít pro odeslání jen pokud je zobrazen určitý text (text je pak zadán jako regulární výraz a protože je static, posílá se náhradnímu oknu, nějakému tlačítku)
  • nové: TimerWaitingUntilEnd počká na dokončení funkce TimerMsgToWindow
  • změna: SqlAdd změna načítání vlastností bodu pro body, které nejsou GC ani WM
  • změna: po zkopírování dávky je vybraná nově vytvořená dávka

2.0.11.22 (11.12.2013, počet stažení: 841)

  • oprava opravy

2.0.11.21 (9.12.2013, počet stažení: 144)

  • oprava: odstraněn memory leak při spouštění dávky

2.0.10.20 (5.11.2013, počet stažení: 715)

  • nové: ApiUpdateUserLogs aktualizuje logy uživatele
  • nové: časový parametr %e% je nahrazen aktuálním datem a časem v extended formátu (Delphi), vhodné pro porovnání s databázovými položkami dtupdate2
  • změna: při načtení seznamu dávek nahrazen regulární výraz standardním čtením z INI souboru
  • změna: načítání ikon přizpůsobeno plánované verzi GeoGetu

2.0.9.19 (26.7.2013, počet stažení: 1179)

  • nové: VarFromFileRegex, VarFromStringRegex ukládá do proměnné text získaný substitucí regulárního výrazu ze souboru nebo ze stringu
  • nové: ShowHtml zobrazí HTML text
  • změna: VarTest doplněn operátor <>
  • změna: DBSelect pokud není zadané jméno databáze, nechá uživatele vybrat
  • změna: protože komentář znakem # již je nepoužívaná vlastnost, nedochází před editací dávky k uřezávání řádků na tomto znaku
  • oprava: DBSelect - po změně databáze se v proměnné DBName nevracelo jméno databáze, na kterou DBSelect přepnul
  • oprava: TextToFile nebylo možné zapsat text obsahující svislítko
  • oprava: INIWriteValue nebylo možné zapsat text obsahující svislítko
  • oprava: RunShellWait vynucován nepovinný parametr
  • oprava: při úpravě dávky volba souborů pro některé příkazy (ty, které měly parametr File.all) nabízela prázdný seznam
  • oprava: pár překlepů v popisech příkazů

2.0.8.18 (11.6.2013, počet stažení: 953)

  • oprava: API podle CFG, vždy se načítal jen Lite listing
  • oprava: trvalé smazání celé keše z DB nevymazalo z DB ID keše
  • oprava: načítání hodnot Icon, Name, Comment z INI souboru
  • oprava: ApiGgtListing, ApiGgtStatus - odstranění mezer z ggt souboru
  • oprava: ApiGetUserLogs - oprava kódování načteného nicku z ANSI na UTF-8
  • změna: SQLToVar - může obsahovat proměnné Combine, GeoGetu a systému
  • změna: při editaci dávky není hlášeno upozornění na neexistující soubor v případě, že cesta/jméno souboru obsahuje proměnnou. Upozornění ve formě podbarveného řádku zůstává (změna barvy na okrovou)
  • změna: rozšíření formuláře s přehledem příkazů v dávce
  • změna: tooltip - horní řádek podle konfigurace, spodní jen 'Davka pro Combine'

(Combine 2.0.7.17 nebylo samostatně publikováno)

  • nové: ApiBookmarkToGgt - seznam keší z bookmarku do GGT souboru
  • nové: ApiBookmarkToVar - seznam keší z bookmarku do proměnné
  • nové: INIReadValue - načte hodnotu z INI souboru
  • nové: INIWriteValue - zapíše hodnotu do INI souboru
  • nové: RunShellWait - spustí program pro obsluhu zadaného souboru a čeká na jeho ukončení
  • změna: při testování existence souboru se napřed testuje připravenost disku, tím se vyhneme nepříjemnému hlášení, že v jednotce není žádný disk
  • změna: pokud interní příkazy otvírají dialog pro volbu souboru, je předvolen správný typ souboru podle přípony

2.0.6.16 (18.10.2012, počet stažení: 2500)

  • nové: VarIncrement - zvýšení hodnoty proměnné o hodnotu kroku. Pokud hodnota proměnné není číslo, zvyšuje první znak na další v pořadí v ASCII
  • nové: ApiBookmarkGetGuid, ApiBookmarkImport, ApiBookmarkAddId, ApiBookmarkList - funkce pro práci s bookmarky
  • nové: SetBusyCaption, SetBusyKind - nastavení textů v Busy dialogu
  • změna: GetRegistryVal - přístupová práva nastavena opravdu jen pro čtení, takže nebude hlášena chyba, pokud uživatel nemá administrátorská práva pro přístup k registru
  • změna: TextToFile - příznak 0 změněn na WRITE, 1 změněn na ADD (zpětná kompatibilita zůstává)
  • změna: prázdné řádky v dávce už nezpůsobí chybová hlášení
  • oprava funkcí pracujících s označenými kešemi, nepracovala správně indikace toho označení
  • oprava: sjednoceni %GG_OWNER% a %GEOGET_OWNER%, možno použít oboje

2.0.5.15 (31.8.2012 počet stažení: 1075)

  • oprava SQLAdd, SQLFileAdd - odstraněn ladicí výpis
  • opravena instalace

2.0.5.13 (26.8.2012)

  • nová funkce GgtCount - počet keší v *.ggt souboru
  • nová funkce GgtAddGgt - součet dvou ggt souborů (ggt1=ggt1+ggt2)
  • nová funkce GgtSubGgt - rozdíl dvou ggt souborů (ggt1=ggt1-ggt2)
  • nová funkce GgtSubDb - od ggt odečte keše v databázi (ggt=ggt-DB)
  • nová funkce VarGetDir - optá se na adresář a uloží odpověď do proměnné
  • nová funkce VarGetPathname - optá se na cestu\soubor a uloží odpověď do proměnné
  • nová funkce ListChangeGcl - změní rozložení sloupců hlavního okna GeoGetu podle zadaného *.gcl souboru
  • změna: při výběru souborů v dávkách je možnost volby typu souboru
  • změna: příkaz Debug akceptuje i parametr START/STOP
  • změna: příkaz, který při načtení dávky hlásí chybu, je v seznamu příkazů podbarven
  • oprava ApiGetLogs - výpis statistiky importu byl po každé keši
  • oprava ApiGetListingsByCfg - odstraněn ladicí výpis
  • oprava ListSaveGgt - opraven ladicí výpis
  • oprava HttpGet - načtená data nebyla uložena do souboru
  • oprava některých funkcí pracujících s *.ggt - pokud soubor neexistoval, plugin havaruje

2.0.4.12 (6.6.2012 počet stažení: 2013)

  • do distribuce se vloudil jeden starý soubor, tak opravou je náhrada tím správným

2.0.4.11 (6.6.2012)

  • podpora jazykových mutací (zatím EN, CS)
  • nový příkaz HttpGet pro získání souboru/stránky přes http/https protokol
  • nový příkaz ListCount pro uložení počtu zobrazených keší v seznamu GeoGetu
  • nový příkaz StopThis (přeruší zpracování aktuální dávky, řízení přebírá nadřízená, volající dávka)
  • nový příkaz ListSelectedSaveGgt pro uložení označených keší do *.ggt souboru
  • nový příkaz ListRemovePermanent pro trvalé vymazání zobrazených nebo označených keší z databáze
  • nový příkaz VarSetGgtAsStringForSqlIn pro vytvoření proměnné ze seznamu keší v *.ggt souboru (proměnná je string ve formátu vhodném pro frázi IN v SQL příkazu)
  • nový příkaz ApiGetListingsByCfg pro načtení listingů keší podle parametrů zadaných v konfiguračním souboru
  • nový příkaz ApiGetUserLogs pro načtení všech logů zadaného uživatele
  • nový příkaz ShowMsgWait čeká uvedený čas v sekundách na výskyt souboru nebo na přerušení. Návratová hodnota z příkazu je 1 (vypršel čas) 2 (objevil se soubor), 3 (přerušeno uživatelem tlačítkem Storno); hodnotu lze získat příkazem ValRet a pak testovat a podle toho se zachovat
  • doplněna možnost přerušení pomocí Busy dialogu
  • doplněna volba SEL pro funkce pracující s API a seznamem
  • doplněna možnost manipulaci s TAGy aplikovat jen na vybrané nebo nevybrané keše v seznamu
  • SQL příkazy (i v souboru) mohou obsahovat proměnné %…%
  • oprava zavlečené chyby při stahování logů ke keším, jejichž seznam je v ggt souboru
  • oprava chyby, která bránila možnosti přerušení dávky pomocí tlačítka ve standardním Busy dialogu
  • doplnění statistiky na konci importů přes GC.Live (jde potlačit jako při ostatních importech)
  • nová proměnná %GEOGET_OWNER%, shodná s GG_CACHER, umožňuje použití SQL z GeoJarry
  • při volání funkcí GcLive*() je ošetřen prázdný string na vstupu
  • doplnění formuláře o možnost nápovědy se seznamem základních proměnných použitelných v dávkách
  • změna formátu v některých příkazech pro Tagy a GC.Live, číselné parametry nahrazeny mnemotechnickými zkratkami (ale Combine pracuje i s původními hodnotami)
  • oprava zpracování prázdných řádků v dávce

2.0.3.10 (22.11.2011 počet stažení: 3065)

  • změna: RunInfo doplněn o možnost přerušení dávky; k přerušení dojde až po dokončení právě probíhající operace (načítáni filtru, ukončení vnitřně spuštěného scriptu, uzavření již otevřeného modálního formuláře, …)
  • změna: po přikazu FileExists je možné rovnou provádět podmíněný příkaz v závislosti na výsledku; již není třeba výsledek uložit do proměnné a její hodnotu testovat
  • změna: před uložením textu do souboru (příkaz TextToFile) dojde k nahrazení proměnných %jmeno%
  • změna: ApiGgtLogs a ApiGetLogs měly jako oddělovač v prvním parametru středník, což je nejednotné s ostatními příkazy Combine - oddělovač změněn na dvojtečku, z důvodu kompatibility je teď tedy možno používat oboje (preferuji dvojtečku)
  • nový příkaz SQLToVar provede zadaný příkaz SQL (může být zadaný i jménem souboru) a výsledek načte do proměnné (každá první vrácená hodnota na samostatném řádku, např. SELECT DISTINCT cachesize FROM geocache vrátí seznam velikosti keší v databázi
  • nový příkaz VarExpr pro uložení výsledku matematického výrazu do proměnné. Výraz může obsahovat jiné proměnné (uzavřené v %..%), závorky, běžné matematické operace a také funkce SQLite, které mají v daném kontextu smysl

2.0.3.9 (16.11.2011 počet stažení: 327)

  • oprava: vykreslování ikon v seznamu dávek, spodní pixelový řádek byl zdvojen, chybný bod jako referenční s průhlednou barvou
  • sjednocení pojmenování skupiny příkazů jako “dávka”
  • nový příkaz BrowseUrl
  • nová kategorie příkazů pro přístup k GC.live, zatím načtení logů keší, aktualizace stavu keší a aktualizace keší. Keše je možné zadat výčtem, ggt souborem nebo příkazy mohou pracovat se seznamem zobrazených keší

2.0.2.8 (2.8.2011 počet stažení: 999)

  • oprava: při ukládání změněné dávky došlo někdy ke změně ikony a jména uvnitř INI souboru - aGroups je řazeno podle jména souboru, ale při změně obsahu dávky se do INI ukládaly hodnoty z aGroups podle indexu v zobrazeném seznamu dávek, což vždy není totéž (oprava ve verzi z 27.3.2011 nebyla důsledná)
  • oprava: vyhozen zapomenutý ladicí výpis pro zpracování TAGu
  • oprava: nastavení příznaku ladicích výpisů z dávky (při pokusu o nastavení byla dávka přerušena)
  • oprava: vyhodnocení proměnných při testování v případě nedefinované proměnné
  • oprava: doplnění kontroly vstupních hodnot pro práci s registry
  • rozšíření příkazu ShowRunInfo, zadávají se samostatně X a Y souřadnice, záporně jsou hodnoty zprava resp. zdola (pro jednoduchost se předpokládá, že hlavní panel je jednořádkový a dole)
  • doplněna proměnná GG_CACHER (nick vyplněný pro gc.com v nastavení GG)
  • doplněna proměnná CRLF jako odřádkování v textu
  • nové proměnné GS_USERNAME, GS_PASSDORD (načítané ze souboru groundspeak.config.pas, pokud existuje, je možné je přepsat a tak použít i jiného uživatele než standardně používá GG či GJ)
  • nový příkaz TextToFile
  • nový příkaz FileExists
  • nový příkaz FileToGsProfile
  • nový příkaz VarTestDefined

2.0.2.7 (3.7.2011) (počet stažení: 348)

  • nová funkce SQLFileAdd pro zpracování SQL příkazu uloženého v souboru
  • nové funkce FtpGetFile a FtpPutFile pro přístup k FTP serveru (v pasivním režimu)
  • možnost vkládat komentář (příkaz CMT) samostatně, už není třeba vložit vatu a tu zapoznámkovat
  • nový příkaz Debug umožňuje krokovat jen v části dávky
  • formulář: oprava editace příkazu dvojklikem, pokud nebyla v rozbalena příslušná skupina příkazů v listboxu se seznamem možných příkazů

2.0.2.6 (23.5.2011) (počet stažení: 228)

  • formulář příkazů: skupinu lze rozbalit/zabalit i prostým kliknutím na ikonku
  • formulář příkazů: změna barvy a fontu pro výpis jména skupiny, vynechané '-'
  • CombineCommand.ini: změna textu, oprava číslovaní skupin
  • ShowMsgBreak: odstraněno tlačítko [Storno]

2.0.2.5 (23.5.2011) (počet stažení: 29)

  • ggi: oprava - volání neexistující funkce, zavlečeno do verze 2.0.2.4
  • ggi: na konci instalace vymaže starou verzi definice dávek (Combine.ini)
  • formulář příkazů: doplněna informace o způsobu rozbalení/sbalení skupiny příkazů
  • formulář příkazů: skupina TAGy, Registry rozdělena na dvě samostatné skupiny

2.0.2.4 (22.5.2011) (počet stažení: 34)

  • všude, kde je možné použít proměnné, je možné použít i proměnné systému (%PATH%, %USERNAME%, %WINDIR%, …)
  • příkazy RunExec a EXE vrací návratovou hodnotu spuštěného programu
  • seznam interních příkazů GeoGetu je rozbalovací po skupinách
  • přerovnání nabídky v CombineCommand.ini - zpřehlednění, drobné korekce textu
  • zobrazení ID příkazu v nabízeném seznamu příkazu k výběru (config.pas: CMDS_SHOWID='1', možnost potlačit)
  • doplnění příkazu pro nastavení TAGů: TagAdd, TagDel, TagClear
  • drobné úpravy ve formuláři pro volbu příkazů GeoGetu

2.0.1.3 (27.3.2011) (počet stažení 291)

  • doplněna zjednodušená (jen string) práce s registry
  • doplněn příkaz pro refresh celého načteného seznamu keší/bodů/WP
  • doplněn příkaz pro ukončení dávky (např. po testu)
  • vrácena funkce ShowMsgBreak (úmyslně nebyla do verze 2.0 převedena)
  • drobná úprava barev zobrazených příkazů
  • řazení seznamu dávek je abecedně podle jména dávky, ale načítání je abecedně podle jména souboru, což vždy není totéž. V některých případech to vedlo k zobrazení (případně i uložení) chybného jména a ikony
  • oprava při převodu starých dávek GGT_SUB/ADD
  • oprava spouštění jiné dávky
  • pár dalších drobností

2.0.0.2 (2011/03/01) (počet stažení: 210) Změny grafického prostředí

  • oprava barev pro GGT_* a GGS
  • oprava tvorby *.ggs.pas
  • oprava obsluhy tlačítek pro vyhledání souboru nebo adresáře jako parametru pro spuštění exe/bat
  • při krokování dávky doplněna možnost přeskočit příkaz a pokračovat dalším příkazem v dávce
  • doplněna možnost upravit zakomentované řádky (stále nejdou přímo vytvořit, je třeba pozastavit vykonávání nějakého příkazu, ale i tak považuji za užitečné mít možnost dát si do delších dávek komentář)

2.0.0.1 (2011/02/20) (počet stažení: 135)

  • oprava konverze příkazu VarTest (text v uvozovkách)
  • oprava konverze příznaku podmíněného provádění některých příkazů (příznak se nepřenesl do nové dávky)
  • drobné opravičky v ikonách, …

2.0.0 (2011/02/20) (počet stažení: 55)

  • změna v defautl.pas, config.pas
  • změněno uživatelské rozhraní (snad přehlednější)
  • barevné odlišení příkazů, barvy možné definovat úpravou Combine.Colors.ini
  • každá skupina v samostatném souboru v adresáři Batches
  • dávky uložené pro samostatné spouštění jako ggp.pas jsou v adresáři Batches
  • ikony poznamenány jako Base64 v definičním souboru dávky, již nejsou v samostatném souboru
  • počet akcí ve skupině není omezen
  • příkaz identifikován zkratkou (CMD,FILT_*,…) místo jediného znaku (@=+-!), tím je snad dosaženo lepší čitelnosti souboru s dávkou
  • uživatelem definované proměnné lze používat kdekoli v kterémkoli příkazu (třeba jako součást jména souboru)
  • při provádění dávky jsou doplněny některé kontroly a hlášeni chyb

1.2.2.1 (2010/11/23) (počet stažení: 192)

  • oprava kontroly souboru s ikonou, pokud je zanořena v adresáři uvnitř DATADIR
  • informační dialog se stavem zpracování dávky je implicitně skryt, lze jej kdykoli v dávce zapnout a vypnout příkazem ShowRunInfo
  • nový příkaz ListDeleteFromXToEnd (v seznamu v okně GeoGetu nechá jen prvních X bodů)

1.2.1.0 (2010/10/26)

  • oprava popisu funkce DelTree
  • možnost ladění dávky (přerušení před provedením příkazu)
  • nové příkazy EmptyDir, CreateDir, VarDateTime
  • možnost použít proměnné pro datum/čas: %Y% (rok RRRR), %M% (měsíc MM), %D% (den DD), %h% (hodina hh), %m% (minuta mm), %s% (sekunda ss) - nastavují se při startu dávky nebo příkazem VarDateTime
  • možnost použití proměnné %GG_SCRIPTDIR%
  • možnost dočasně potlačit vykonávání příkazu v dávce a později zase aktivovat
  • doplnění okna se stavem zpracování dávky
  • ggf, ggt, ikona se do ini ukládají relativně vůči DATADIR, pokud to nejde, tak absolutně
  • gge, ggp se do ini ukládají relativně vůči SCRIPTDIR

Předchozí verze

  • popis změn v předchozích verzích je podrobně uveden v soubor ChangeLog.txt, který je součástí instalace
user/skript/combine.txt · Last modified: 2022/04/18 20:47 by gord