V nove verzi beta23 byl uvolnen k testovani novy system pro exportni skripty. Jeste ale nejsou hotove vsechny planovane nastroje, ani nen hotova zadna dokumentace.
Lecos se da ale okoukat z ukazkovych ctyr exportu, ktere jsou soucasti instalace a ze zdejsich prispevku.
Jako exportni skript je detekovany kazdy soubor se jmenem *.gge.pas v datovem adresari Geogetu. Pripona .pas je tam z toho duvodu, aby se skripty daly pohodne editovat nastroji se zvyraznovanim syntxe podle pripony.
Pokud bude ve skripty syntakticka chyba, nebude se nabizet k pouziti. Nastroje na odladovani skriptu do geogetu planuji, ale jeste nejsou. Vydrzte.
Kazdy skript musi definovat funkce:
function ExportExtension: string;
definuje priponu exportovaneho souboru
function ExportDescription: string;
definuje slovni popis exportu
function ExportHeader: string;
definuje co se ma zapsat na zacatek exportovaneho souboru
function ExportFooter: string;
definuje co se ma zapsat na konec exportovaneho souboru
function ExportPoint: string;
-je volano pro kazdy exportovany bod a definuje co se ma zapsat do exportovaneho souboru
function ExportAfter(value: string): string;
volitelna fuknce, ktera je zavolana po finalnim zapsani exportovaneho souboru na disk. Jmeno tohoto zapsaneho souboru je predavano jako parametr.
Pri volani kazde exportni funkce je predvyplneno mnoho promennych s informacema. Napriklad promenne zacinajici na GC_ obsahuji informace o exportovanem bodu. Jsou k dispozic take uzitecne funkce. Oboje je okoukatelne v existujicich exportnich makrech.
Seznam promennych sem nekdy take hodim, stejne jako seznam funkci. Ten planuji navic postupne jeste rozsirovat.
Nyni neco o promennych pouzitelnych ve skriptech. Vsechny promenne jsou v UTF-8 kodovani. Pokud potrebujete jine kodovani, musi se pouzit nejaka z konverznich funkci, o kterych bude rec nekdy priste.
Tak tedy:
Geoget_Version
Retezec s verzi GeoGetu.
CRLF
retezec obsahujici odradkovani.
GC_ID
kod waypointu geocache, tedy takove to GC12345
GC_Lat
retezec se zemepisnou sirkou ve formatu 50.12345
GC_Lon
retezec se zemepisnou delkou ve formatu 14.12345
GC_GUID
GUID identifikator cache. V pripade pridaneho waypintu odkazuje na rodicovskou cache.
GC_URL
URL odkaz na listing na serveru www.geocaching.com U waypointu je to odkaz na rodicovskou cache.
GC_Name
jmeno cache ci waypointu.
GC_ParentName
u waypointu obsahuje jmeno rodicovske cache.
GC_Author
jmeno autora cache
GC_Type
druh cache
GC_Size
slovni popis velikosti cache
GC_Difficulty
obtiznost cache jako retezec ve formatu napriklad 1.5
GC_Terrain
obtiznost terenu cache jako retezec ve formatu napriklad 1.5
GC_Comment
uzivatelova poznamka
GC_ShortDescription
kratky popis z listingu
GC_LongDescription
dlouhy popis z listingu
GC_Hint
dekodovany hint. Pkud jej chcete v zakodovane forme, lze na to pouzit konverzni funkce!
GC_IsDisabled
true, pokud je cache prave disablovana
GC_IsArchived
true, pokud je cache prave archivovana
GC_Hidden
TDateTime s datumem ukryti cache
GC_LastFound
TDateTime s datumem posledniho nalezu
GC_Updated
TDateTime s datumem posledni aktualizace zaznamu v databazi
GC_Found
TDateTime s datumem vaseho nalezu.
GC_FoundTime
TDateTime s casem vaseho nalezu.
GC_IsFound
True, pokud je cache vami nalezena
GC_IsWaypoint
True, pokud se jedna o waypoint a ne o cache.
GC_IsUserWaypoint
True, pokud se jedna o uzivateem pridany waypoint.
GC_TypeID
jednopismenne oznaceni druhu cache.
GC_IsValidCoord
true, pokud souradnice splnuji omezeni definovane v konfiguraci geogetu.
GC_Tag
zkratkovite oznaceni druhu velikosti a obtiznosti cache v podobe ctyr znaku. Napriklad TM12, UL44, atd.
GC_FullName
u cache obsahuje totez co GC_Name. V pripade waypointu je za nim jeste v zavorce jmeno rodicovske cache.
GC_HaveListing
true, jestlize je znam listing cache.
GC_HaveFinal
true, jetlize je pritomen waypoint s nazvem ‘final’
vraci pocet pritomnych uzivatelskych logu. pres cyklus "for n := 0 to GC_LogCount - 1 do" lze pak projit vsechny logy a promennou n pouzit jako index pro nasledujici funkce.
krome mnoha standardnich funkci skriptovaciho engine jsou k dispozizi tyto specielni funkce:
function UtfToAscii(Value: string): string
provede odstraneni diakritiky
function UtfToGps(Value: string): string
odstran diakritiku, prevede retezec na velka pismena a propusti jen vybranou mnozinu specielnich symbolu tak, aby vysledn retezec byl kompatibilni s nejuspornejsim sestibitovym kodovanim u Garmin GPS.
function UtfToAnsi(Value: string): string
prevede retezec do ANSI kodovani.
function CData(Value: string): string
pouziva se na zakodovani dat pro XML element.
function Rot13(Value: string): string
provede ROT13 kodovani
function Reverse(Value: string): string
obrati obsah pozpatku.
function RunExec(Value: string): integer
zavola externi program a vraci jeho navratovy kod.
procedure RunShell(Value: string)
zavola obsah pres shel operacniho systemu. Napriklad pokud je value URL adresa webove stranky, bude otevrena ve vasem defaultnim prohlizeci.
function RenameFile(const OldName, NewName: string): Boolean
prejmenuje soubor
function CopyFile(const OldName, NewName: string): Boolean
zkopiruje soubor
function DeleteFile(const FileName: string): Boolean
vymaze soubor
function FileExists(const FileName: string): Boolean
test, jestli soubor existuje
function QuoteStr(const Value: string; Quote: Char): string
zabali retezec do udaneho znaku, a pokud se uvnitr ten znak vyskytuje, zdvoji jej.
function ReplaceString(Value, Search, Replace: string): string
nahradi v retezci vsechny vyskyty jednoto retezce za druhy.