• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Garmin Oregon: Cachetype in Cacheliste erkennen

Wer gerne in der Cacheliste erkennen möchte, um welche Art und Größe es sich handelt, kann entweder GSAK erwerben und ein Makro laufen lassen oder warten, bis Garmin die Übersicht angepasst hat.

Wer M$ Word nutzt kann auch den folgenden VBA Code nutzen

1. Neues Dokument erstellen, als 'Garmin.doc' abspeichern
2. VBA öffnen (alt+F11)
auf 'garmin.doc' doppelklicken
3. Code einfügen
4. Speichern.
5 Pfad + GPX Dateiname anpassen
6 GPX_oeffnen() ausführen

fertig.

Achtung, dass Programm ist quick and dirty geschrieben.
Bei mir funktioniert es. Ich übernehme keine Gewähr, dass es auf anderen Rechnern oder GPS Kombinationen ebenfalls funktioniert.

Falls jemand den Code optimieren (Dateiauswahldialog, Sicherheitsabfragen) möchte, gerne. Aber wenn möglich, die Änderungen hier posten.

Code:
Sub GPX_oeffnen()
'
' GPX_oeffnen Makro
' Makro aufgezeichnet am 24.04.2009 von Registrierter Benutzer
'
' Dateipfad und Name anpassen!
'    
    ChangeFileOpenDirectory "D:\Geocaching\GPX\"
      Documents.Open FileName:="2916706.gpx", ConfirmConversions:=False, _
        ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
        PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
        WritePasswordTemplate:="", Format:=wdOpenFormatAuto
    Selection.EndKey Unit:=wdStory
    Selection.Find.ClearFormatting
    GPX_Parser
    GPX_save
End Sub
Sub GPX_save()
'
' GPX_speichern Makro
' Makro aufgezeichnet am 24.04.2009 von Registrierter Benutzer
'
    ActiveDocument.Save
End Sub
Sub GPX_Parser()
Dim cache_size As String
Dim cache_typ As String
Dim Cache_Name As String
'
' GPX_parsen Makro
' Makro aufgezeichnet am 24.04.2009 von Registrierter Benutzer
'
    Do
    TextFind ("container")
    cache_size = GetText(1)
    TextFind ("type")
    cache_type = GetText(2)
    TextFind ("name")
    SetText cache_size, cache_type
    seite = Selection.Information(wdActiveEndPageNumber)
    zeile = Selection.Information(wdFirstCharacterLineNumber)
    Steps = Selection.Information(wdFirstCharacterColumnNumber) - 1
    If (seite = 1 And zeile <= 30) Then
        Exit Do
        End If
     Loop
End Sub
Function TextFind(Value) As String
With Selection.Find
        .Text = "<groundspeak:" & Value & ">"
        .Replacement.Text = ""
        .Forward = False
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
Selection.Find.Execute
End Function
Function GetText(length) As String
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.MoveRight Unit:=wdCharacter, Count:=length, Extend:=wdExtend
GetText = Selection.Text
Selection.MoveLeft Unit:=wdCharacter, Count:=length, Extend:=wdExtend
Selection.MoveLeft Unit:=wdCharacter, Count:=1
End Function
Function SetText(cache_size, cache_type)
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.Text = "[" & cache_type & cache_size & "] "
Selection.MoveLeft Unit:=wdCharacter, Count:=1
End Function

Udo
 

Anhänge

  • 402.jpg
    402.jpg
    15,3 KB · Aufrufe: 4.040
A

Anonymous

Guest
warum jemand fünf zeichen für die anzeige von zwei variablen [cacheart, cachebehälter] verschwenden soll, ist mir schleierhaft.
ich verwende vier zeichen für vier variablen [cacheart, cachebehälter, difficulty, terrain].



frohes jagen
 

Sandra_und_Marc

Geocacher
Mensch HHL...
Jetzt war ich soooo glücklich, dass ich Cacheart und -grösse von Dir gelernt habe, da hast Du schon wieder was Neues auf Lager!!! :schockiert:

Nun folgt stehenden Fusses die Frage: Wie macht man das???? :gott:
Klär mich doch bitte bitte auf!
(Das ist jetzt wie bei 'nem Mystery.... und ich komm wieder mal nicht drauf)
 
A

Anonymous

Guest
Sandra_und_Marc schrieb:
Mensch HHL...
Jetzt war ich soooo glücklich, dass ich Cacheart und -grösse von Dir gelernt habe, da hast Du schon wieder was Neues auf Lager!!! :schockiert:
[…]
soo neu ist das ja nicht. den quattro-code benutzen viele mir bekannte cacher und ich schon seit jahren.
ich muß aber mal eben an meinen muggel-pc.

bis gleich.
 
A

Anonymous

Guest
der code (gsak):
%correct=! %Typ1%Con1%Dif1a%Ter1a %Name %children %c_Prefix %shortname=15 %c_Name

ein mystery (U) mit korrigierten koords, regular cache, diff=2, terr=1,5 und dem namen »ich bin so frei« sieht dann so aus:
!UR2A »ich bin so frei«
ein dazugehöriger parkplatz mit dem namen Parkplatz und dem prefix PA:
PA UR2A »ich bin so frei« Parkplatz

frohes jagen

nb: das ganze gilt für oregons/colorados mit dem gsak exportmakro. für 60/76er sollte man den prefix des addis hinter den code setzen (für eine leichtere namenssuche)
 

Sandra_und_Marc

Geocacher
Lieber HHL,

für Dich nicht neu, das denke ich mir wohl!!!

Habe es gleich ausprobiert, das klappt ganz wunderbar! Herzlichen Dank! :^^:
 
A

Anonymous

Guest
Whiskyecho schrieb:
HHL schrieb:
%correct=! %Typ1%Con1%Dif1a%Ter1a %Name %children %c_Prefix %shortname=15 %c_Name

und das bau ich dann in das Exportmakro ein ? :???:
ja. es gibt zu dem behuf extra ein feld »custom names« (oder so ähnlich, der muggel-pc steht gerade schlafend auf dem papierkorb).

frohes exportieren
 
OP
D

Die C-SAU Bande

Geomaster
Für GSAK Nutzer wahrscheinlich eher uninteressant:

Ich habe das Script als eigenständiges DOS Programm geschrieben. Läuft jetzt ohne Word.
Der Konverter greift auf nun direkt auf die gezippte PQ zu und erstellt die geänderten *.gpx und *-wpts.gpx in den Unterverzeichnissen GPX und POI.

Anleitung und download gibt es hier: GPXConverter

Udo
 

Dr Bob

Geocacher
Hallo Udo!

Erstmal danke für das Programm. Nur leider zeigt mein Oregon nach dem umwandeln nicht die Cacheart / Behälter in der Liste an. Wenn ich dann versuche einen Cache aufzurufen, hängt sich mein Oregon auf und ist nur durch ausschalten zu "Resetten". Ansonsten aber ne tolle Idee mit dem Programm.

Gruß Torsten
 

Dr Bob

Geocacher
:D Nehme alles zurück! Hab nochmal neu umgewandelt und neu aufgespielt, nun geht alles wie es soll. Toll! Danke!

Gruß

DrBob
 

Deepeis

Geocacher
Respekt! Genau was ich suche. Ich habe überlegt selbst so ein Tool in Python zu schreiben, da ich nun mal Linux nutze und eigentlich nicht mit wine arbeiten möchte....

Danke und Gruss

Deepeis
 

Deepeis

Geocacher
Mir ist aufgefallen:

1. Es muss das Originalfile von GC sein.
2. Die Datei muss den gleichen Namen haben wie die gepackten Daten

Gruss

Deepeis
 
OP
D

Die C-SAU Bande

Geomaster
Deepeis schrieb:
1. Es muss das Originalfile von GC sein.
2. Die Datei muss den gleichen Namen haben wie die gepackten Daten

zu 1. Ich vermute: ja

zu 2. Ja, ich schaue in dem Zip File nur nach der Datei, die genauso heißt wie das *.zip selbst. Dann bastel ich -wpts hinein und finde so die child waypoints.

Bisher sind die Daten immer so von Groundspeak geliefert worden.

Auf den ersten Blick habe ich noch kein eindeutiges Merkmal gefunden, die *.gpx von der *-wpts.gpx zu unterscheiden (Ich meine durch parsen der Datei).

Was nutzt Du denn, um Dein .zip zu erstellen?

Udo
 
OP
D

Die C-SAU Bande

Geomaster
Die C-SAU Bande schrieb:
Dr Bob schrieb:
P.S.: Was bzw. wofür ist diese gmon.out Datei?

Gruß DrBob

Die dient zur Laufzeitüberwachung. Ich seh mal zu, dass ich die Datei in der nächsten Version auf die Ausgabe der Datei verzichte.

Sollte mit der aktuellen Version verschwunden sein. Habe noch eine kleinere Änderung vorgenommen. Die Trennzeichen sind nicht mehr fix [ ] sondern können als Parameter übergeben werden.

Download GPX Converter

Udo
 

Deepeis

Geocacher
Die C-SAU Bande schrieb:
Was nutzt Du denn, um Dein .zip zu erstellen?

Hallo Udo,

ich hatte die GPX - Dateien in Cachewolf bearbeitet und dann mit Winrar gepackt. Danach durch Deinen Converter gejagt!

Wenn ich die Original GC Dateien nehme und erst konvertiere und dann mit GPSBabel zusammenfüge läuft alles wie es soll. Zumindest bei den Cachebeschreibungen. Die Waypoint Datei lässt sich nach dem Durchlauf durch Deinen Converter mittel GPSBabel nicht wieder zusammenführen. Es kommt zu folgender Fehlermeldung:
cmd schrieb:
C:\Garmin\Babel>gpsbabel.exe -i gpx -f 1990461-wpts.gpx -f 2925572-wpts.gpx -o gpx -F 1974085_.gpx
GPX: XML parse error at line 5 of '1990461-wpts.gpx' : not well-formed (invalid token)

Ich habe die GPX Datei 1990461-wpts.gpx angefügt.

Leider klappt dies nicht.

Liebe Grüße

Deepeis

P.S.: In welcher Sprache hast Du die Datei geschrieben. Evtl. ist eine Portierung auf Linux möglich?!
 

Anhänge

  • 1990461-wpts.gpx
    12,4 KB · Aufrufe: 13
OP
D

Die C-SAU Bande

Geomaster
Deepeis schrieb:
cmd schrieb:
C:\Garmin\Babel>gpsbabel.exe -i gpx -f 1990461-wpts.gpx -f 2925572-wpts.gpx -o gpx -F 1974085_.gpx
GPX: XML parse error at line 5 of '1990461-wpts.gpx' : not well-formed (invalid token)

Ich habe die GPX Datei 1990461-wpts.gpx angefügt.
.

kannst Du auch die Original '1990461-wpts.gpx' posten oder mir per mail zuschicken? Dann kann ich sie mal vergleichen.

Deepeis schrieb:
P.S.: In welcher Sprache hast Du die Datei geschrieben. Evtl. ist eine Portierung auf Linux möglich?!

c++, das sollte klappen.

Udo
 

Deepeis

Geocacher
Die C-SAU Bande schrieb:
kannst Du auch die Original '1990461-wpts.gpx' posten oder mir per mail zuschicken? Dann kann ich sie mal vergleichen.


Deepeis schrieb:
P.S.: In welcher Sprache hast Du die Datei geschrieben. Evtl. ist eine Portierung auf Linux möglich?!

c++, das sollte klappen.

Udo

Uuhhh.... Neues Projektle. Wollte sagen: Könnte ich den Code evtl haben?

Gruß und Danke

Deepeis
 

Anhänge

  • 1990461-wpts.gpx
    11,4 KB · Aufrufe: 9
Oben