GSAK makroprogramering

En GSAK makro kan bestå af flere dele, såsom GSAKs makrokode, SQL og i nogen grad regulære udtryk.

GSAK makro kode
GSAKs makrokode kan findes ved i GSAKs menu at vælge Macro => Help der giver denne side, ud over en kort gennem gang af makrosproget har siden aller øverst fem links to links til lister over kommandoer og funktioner i makrosproget det ene alfabetisk og det andet lister dem i kategorier. De næste to links er til en oversigt over database variabler og en til GSAKs system variabler. Det sidste link er til en oversigt over GSAKs form (vinduer).

Forms
Hvis man vil lave vinduer i sin makro skal man bruge GSAKs makro forms, man kan få hjælp til dette med GSAKs form designer der findes i menupunktet Macro => Form Design.

SQL
GSAK bruger en database motor der hedder SQLite.

Man kan se en oversigt over GSAKs SQLite makro funktioner i GSAKs hjælp fil under Sqlite.

Når man bruger database variabler i SQL skal man fjerne det foranstillede $d_.

En delvis gennemgang af SELECT som bruges til at udvælge noget i SQL-sproget kan findes på GSAK - Where da det er det der bruges på fanebladet Where i filter vinduet.

Specielle views
GSAK har tre specielle views som er en sammenfletning af 2 eller flere tabeller så de er nemmere at søge i samlet, de tre er med deres respektive tabeller i parentes CachesAll (Caches, CacheMemo og Custom), LogsAll (Logs og LogMemo) og WayAll (Waypoints og WayMemo)

GSAKs SQLite funktioner
Udover SQLites egne funktioner har GSAK nogle specielle SQLite funktioner, bla. g_GcDate(sLogDate,sLogTime) som prøver at fikse Geocaching.com datorod.

Sqlite manager
GSAK har sin egen egen sql-manager til at teste SQL-udtryk med, den findes under menupunktet Tools => Sqlite manager…. Det anbefales ikke at have den samme database åben i både GSAK og Sqlite manageren på samme tid.

Regulære udtryk
Man har også adgang til regulære udtryk, til bla. at søge og erstatte i tekststrenge, hvor GSAK bruger Perl varianten af regulære udtryk.

Groundspeak API
Med funktionen GcApi kan man tilgå Groundspeak API direkte i en makro. Bemærk at der i eksemplerne og oversigten er to forskellige typer af metoder i APIet, nemlig GET og POST.

Kom i gang
Hvis man ikke er så rutineret med programmering kan det anbefales at kigge på nogle makroer der gør noget lignende det man ønsker, f.eks. hvis man ønsker at bruge en GcApi post metode så kig på en makro der også bruger en GcApi post metode, alle makroer og makrokode udgivet på GSAKs forum er at betragte som public domain og må derfor frit kopieres og genbruges. Der findes et underforum på GSAKs forum med nogle makro templates og der er også en forum til spørgsmål ang. makro kode Macro Support (Questions).

Hvis man ønsker at dele sin makro på GSAKs forum er her en guide.

Makro header
En makro bør starte med en header, specielt hvis den skal deles på GSAKs forum MacFileName bør kun indeholde tegne a-z, 0-9 og _ (underscore), dvs. danske tegn, mellemrum og - (bindestreg) bør ungåes. Hvis man har ændret en makro hentet fra GSAKs Master Macro Index bør man ændre MacFileName især hvis man poster den nye makro på GSAKs forum da den nye makro ellers vil skubbe den originale makro ud af indexet.
 * 1) MacDescription = Kort beskrivelse af makroens funktion
 * 2) MacFileName = MakroFilensNavn.gsk
 * 3) MacAuthor = Makro skriverens navn eller alias
 * 4) MacVersion = 1.0.1
 * 5) MacUrl=
 * 1) MacUrl=

Makro editor
En makro til GSAK kan blive skrevet/redigeret i en almindelig teksteditor som Windows Notepad, men GSAK har sin egen simple makro-editor som findes under Macro => Edit/Create og som også kommer op hvis man højreklikker på en makro i makromanageren og vælger Edit.

Hvis man vil have en lidt mere avanceret funktionalitet i sin editor kan man bruge en ekstern editor såsom Notepad++, som bla. kan give syntaksfremhævning, der findes også filer på GSAK forum til editoren UltraEdit.

Man indstiller valget af ekstern makro editor i Tools => Options… på fanebladet Advanced.

I Use alternative program for macro editor skriver man %ProgramFiles\Notepad++\notepad++.exe og i Parameters skrives "%file" -n%line



I Notepad++ kan man også kører en makro man er ved at skrive uden at installerer den, f.eks. ved at tilknytte den til i Notepad++ til kørsel af GSAK makroer, dette gøres under Notepad++ menupunktet Run => Run… indsæt nedenstående kode og vælg Save… og vælg den tilhørende tastetur kombination. "c:\Program Files (x86)\gsak\gsak.exe" "$(FULL_CURRENT_PATH)" /run