GSAK makroprogramering

Fra Geowiki
Skift til: Navigation, Søgning

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

GSAK makro kode[redigér]

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[1] og det andet lister dem i kategorier[2]. De næste to links er til en oversigt over database variabler[3] og en til GSAKs system variabler[4]. Det sidste link er til en oversigt over GSAKs form[5] (vinduer).

Forms[redigér]

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[redigér]

GSAK bruger en database motor der hedder SQLite.

Man kan se en oversigt over GSAKs SQLite makro funktioner[6] 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[redigér]

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[redigér]

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

Sqlite manager[redigér]

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[redigér]

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

Groundspeak API[redigér]

Med funktionen GcApi kan man tilgå Groundspeak API[9] 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[redigér]

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[10] og der er også en forum til spørgsmål ang. makro kode Macro Support (Questions)[11].

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

Makro header[redigér]

En makro bør starte med en header, specielt hvis den skal deles på GSAKs forum

#*******************************************
# MacDescription = Kort beskrivelse af makroens funktion
# MacFileName = MakroFilensNavn.gsk
# MacAuthor = Makro skriverens navn eller alias
# MacVersion = 1.0.1
# MacUrl=
#*******************************************

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.

Makro editor[redigér]

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[13], 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

GSAK - Ekstern makro editor.png


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 Ctrl+R 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

NPP - Run makro 1.png NPP - Run makro 2.png

Referencer[redigér]

  1. Makro kommandoer og funktioner alfabetisk
  2. Makro kommandoer og funktioner kategoriseret
  3. GSAKs database variabler
  4. GSAKs system variabler
  5. GSAK form
  6. GSAKs SQLite makro funktioner
  7. GSAKs specielle SQLite funktioner
  8. GSAKs RegEx funktioner
  9. Groundspeak API
  10. GSAK makro templates
  11. Macro Support (Questions)
  12. Guide til at postet sin makro på GSAKs forum
  13. Tråd i GSAKs forum med fil til syntaksfremhævning i Notepad++