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

Import LAB/GPX Case Sensitiv

uli001

Geonewbie
Hallo,

ich habe bereits am 27. Jul 2024 in GitHub für C:Geo auf ein Problem mit den GC-Codes für LABs hingewiesen. Leider scheint sich bei C:Geo keiner dafür zu interessieren.

GitHub C:Geo

Nach fast jeder Tour die ich mache holt mich das Problem aber wieder ein.

Problembeschreibung:
Die GC-Codes für LABs sind case sensitiv. Es macht also einen Unterschied ob ich im GC-Code große oder kleine Buchstaben verwende.

Beispiel:
https://adventurelab.page.link/hY7A
https://adventurelab.page.link/HY7a

GSAK kann mit beiden Varianten arbeiten aber C:Geo leider nicht. Die GPX die ich nach meiner Tour aus C:Geo per Export bekomme enthält also nur noch GC-Codes mit großen Buchstaben. Beim Import in GSAK werden diese als eigenständiger Cache erkannt und in der Datenbank angelegt.

user posted image

Warum ist das ein Problem für mich?
Ich speichere mir in C:Geo in den Notizen die Antworten zu den Stationen ab und möchte diese natürlich auch gerne im GSAK gesichert haben. Oft habe ich selber Probleme mit den Antworten und freue mich, wenn ich Hilfe bekomme und das möchte ich auch gerne zurückgeben können.
Ich finde leider keine Möglichkeit die Daten anhand vom GC-Code und z.B. dem Wegpunktname zusammen zu führen. Auch den Abgleich über einen Dialog abzuhandeln könnte ich mir vorstellen.

Ist „LCorV701 A Liverpool Georgian Walk :“ gleich „LCORV701 A Liverpool Georgian Walk“ dann verwende die Version 1 oder 2.

Zur Umsetzung fehlen mir aber die Kenntnisse. Der Import müsste nicht über die Funktion File>Import erfolgen sondern im Macro.
Hat jemand eine Lösungsidee?

Danke
Uli
 

HHL

Geowizard
Moin Uli

Wie ich dir schon per GS Message schrieb, habe ich etwas Makrocode für dich vorbereitet.
Ich finde leider keine Möglichkeit die Daten anhand vom GC-Code und z.B. dem Wegpunktname zusammen zu führen. Auch den Abgleich über einen Dialog abzuhandeln könnte ich mir vorstellen.
Mein Makro selektiert alle LabCaches, die den gleichen, nicht sensitiven Lab-Code haben.
Sieht vorher so aus:
Grid vorher.PNG

Das Makro filtert die in Frage kommenden Lab Caches raus. Das sieht dann so aus.
Die Sortierung erfolgt so, daß der aus c:geo importierte Lab Cache oben steht

Grid nach filterung.PNG

Die Note aus dem c:geo-GPX-File wird in die GSAK Usernote kopiert.

GSAK_ScreenShot.png

Im Makro mußt Du nur noch den Namen der Variablen, in die die c:geo-Notiz beim Import geschrieben wird, ersetzen.
Also in der Zeile "$copyNote = $d_userdata" muß $d_userdata ersetzt werden.
Außerdem muß das Ziel (Hier ist es noch GSAKs Usernote) benannt werden.
Zudem erfolgt der Import des c:geo-GPXes noch per Hand. Das ist per Makro möglich (habe ich für mich per Dropbox gemacht).

Hans
 

Anhänge

  • Neue Usernote nach makrolauf.png
    Neue Usernote nach makrolauf.png
    20,1 KB · Aufrufe: 12
Zuletzt bearbeitet:

HHL

Geowizard
Und natürlich steht die importierte Notiz dann in dem GSAK-Lab Cache. Das oben gezeigte Bild zeigt einen verkehrten Zustand. Hier ist der richtige:

nach dem makro.PNG
 

HHL

Geowizard
Vor lauter Langeweile auf eine Reaktion des TO habe ich noch ein Open File Fenster eingebaut. :cool:
Frohes Jagen
Hans

GSAK_ScreenShot.png

NB: Der Dateiname ist nur ein Beispiel
NBB: Es sind außerdem noch einige Fragen unbeantwortet:
1. Wie kommen die Lab Caches (nicht die Adventure Labs) in GSAK?
2. Wie kommen die Lab Caches in c:geo?
3. Wie heißt die Variable, in der die c:geo-Notizen in GSAK stehen?
 

HHL

Geowizard
Ist „LCorV701 A Liverpool Georgian Walk :“ gleich „LCORV701 A Liverpool Georgian Walk“ dann verwende die Version 1 oder 2.
Hierbei ist zu bedenken, daß die Zeichenfolge ORV7 mehr als nur zwei Möglichkeiten erwarten läßt.
Als da wären: ORv7, oRV7, orV7, orv7, und noch einige mehr. Dieser Fall dürfte aber extremst selten vorkommen, und ist auch in meinem Code nicht vorgesehen.

Der Code fängt mit O oder o an, und nicht mit C was zum Prefix dem Lab Cache-Codes gehört.
 

HHL

Geowizard
Das gilt immer noch:
NBB: Es sind außerdem noch einige Fragen unbeantwortet:
1. Wie kommen die Lab Caches (nicht die Adventure Labs) in GSAK?
2. Wie kommen die Lab Caches in c:geo?
3. Wie heißt die Variable, in der die c:geo-Notizen in GSAK stehen?
 
OP
U

uli001

Geonewbie
1. Wie kommen die Lab Caches (nicht die Adventure Labs) in GSAK?

Dafür gibt es mehrere Wege.
A per export aus cgeo (veruche ich zu vermeiden da der Code keine kleinen Zeichen mehr enthält)
B über lab2gpx (hier sollte zwingend das Flag " Code nicht in Großbuchstaben konvertieren (#30)" gesetzt werden.
C CW_GetMissingAdventures (Wenn die Tour am PC vorbereitet wird)
D CW_FoundAdventureLabs (Nach der Tour um die LabCaches in der Datenbank als gefunden zu setzen.)

2. Wie kommen die Lab Caches in c:geo?
Dafür gibt es mehrere Wege.
A per export aus GSAK (Wenn die Tour am PC vorbereitet wurde)
B über lab2gpx (Wenn spontan unterwegs was gemacht wird)

3. Wie heißt die Variable, in der die c:geo-Notizen in GSAK stehen?
die Informationen stehen in der Geocaching.com-Notiz
 

HHL

Geowizard
A per export aus cgeo (veruche ich zu vermeiden da der Code keine kleinen Zeichen mehr enthält)
Aber genau darum ging es doch in deinem Ausgangsposting, nämlich:
1. Daß Du deine beim Cachen gemachten Notizen in c:geo hast, und c:geo die Codes alle in Großbuchstaben ändert.
2. Daß dann die aus c:geo importierten Lab Caches als Dubletten in GSAK landen.
3. Und du jetzt die Notizen aus dem c:geo-Import in die schon in GSAK vorhanden Lab Caches übernehmen möchtest.

1B, C, 2A und B interessieren mich nicht, da sie mit der Ausgangsfrage nicht zu tun haben.

Bei 3 wird es interessant.
Laut Ausgangsposting hättest Du also Interesse, die aus c:geo importierten Notizen, die nach dem Import in GSAKs Datenfeld "Geocaching.com-Notiz" stehen, in die schon in GSAK vorhanden Lab Caches (die mit dem Klein-Groß-Code) zu übernehmen.
Wenn dem so ist: In welches Feld hättest du die gerne importiert? Auch wieder in die "Geocaching.com-Notiz"?

Hans
 
Zuletzt bearbeitet:
OP
U

uli001

Geonewbie
Hans, ja es geht darum wie die Notizen aus cgeo in den richtigen Cache in GSAK kommen da in cgeo alle Buchstaben im Code in große Zeichen umgewandelt werden. Es kann doch aber in GSAK die Notiz nur zugeordnet werden wenn auch etwas da ist. Darum habe ich dir alle Wege aufgeführt wie die Daten ins GSAK kommen können.

2a/2b du hast die Frage aufgeworfen und ich habe sie dir beantwortet.

3.
Nach dem Import stehen die Daten in der Geocaching.com-Notiz wie auch bei allen anderen Cache-Typen. Dort dürfen/sollen die Informationen auch ruhig bleiben. Zum kopieren in die GSAK-Notiz oder andere Richtung gibt es genügend Makros.

Also einfach von z.B. LCORV701 zu LCorV701 sofern es der gleich LAB-Cache ist.
 

HHL

Geowizard
Also einfach von z.B. LCORV701 zu LCorV701 sofern es der gleich LAB-Cache ist.
Dann ist ja gut.
Eine Bitte zum Testen bei dir habe ich noch:
Erstelle dir eine Testdatenbank. Kopiere in diese Datenbank ein paar c:geo Lab Caches. Dann welche aus GSAK, Ferner welche, die keine Notizen enthalten.
Außerdem noch ein oder zwei Lab Caches, deren c:geo Corecode zu mehreren Lab Caches mit Groß-, Kleinschreibung gehört.

Code:
#*************************************************************************
# MacVersion = 0.7
# MacDescription = Select Double LabCodes, Copy Notes, Delete obsolete Labs
# MacAuthor = HHL
# MacFileName = SelectDoubleLabCodes.gsk
# MacUrl =
#*************************************************************************
# Version 0.4    Added copying of Notes
# Version 0.5    Added Deletion of obsolet c:geo Labs
# Version 0.6    Added Open File Form
# Version 0.7    Changed Data Fields to $d_GcNote
#*************************************************************************

    MacSettings Type=R FileCheck=N

#*************************************************************************

    WHILE True
       $FormExit = form($Form1,"")
       BEGINCASE
          CASE $FormExit = "SystemExit"
          RETURN Msg="Macro canceled."
          CASE $FormExit = "OK"
          BREAK
          CASE $FormExit = "Cancel"
          RETURN Msg="Macro Canceled"
       ENDCASE
    ENDWHILE

    LOAD File="$File1"

#*************************************************************************

    USERFLAG type=clear range=all
    MACROFLAG type=clear range=all

    MFilter Where=g_contains(CacheType,'Q')

    WHILE not($_EoL)
       $UPPERcodes=UPPER($d_code)
       $codes = Sqlite("sql","Select Code from Caches WHERE RowID IN(Select * From GridTemp)")
       $result = AT($d_code,$codes)<>1
       $count = RegexCount($d_code,$codes)
 
       IF $result=true AND $count>1
          MACROFLAG type=set range=1
       ENDIF
   
       Goto Position=Next
    ENDWHILE

    MFilter Where=Macroflag

    IF $_Filtercount=0
       CANCEL Msg=No Double Codes found. Macro canceled.
    ENDIF

    SqlSort OrderBy=name,code

#****** Now copy c:geo-Data to UserNote **********************************

    Goto position=top

    WHILE not($_EoL)
       Transaction Action=Begin
##          $copyNote = $d_userdata            # $d_userdata durch den gewünschten Variablennamen der Notizen aus c:geo-Import ersetzen
          $copyNote = $d_GcNote            #
          USERFLAG type=set range=1  
          Goto position=next        
##          $d_UserNote=$copyNote    
          $d_GcNote=$copyNote    
          Goto position=next
       Transaction Action=End
    ENDWHILE

#****** Delete c:geo Labs ************************************************

    Pause Msg=Deletion of selected Lab Caches from c:geo OK?

    MACROSET  Dialog=Delete VarName=$DeleteLabs name=<macro>
    DELETE Settings="<macro>"

#*************************************************************************

    MacSettings Type=S Vars=File1

#*************************************************************************
       
<data> VarName=$DeleteLabs
[TfmDelete]
cbxStop.Checked=False
rbtFilter.Checked=False
rbtFlagged.Checked=True
rbtOnly.Checked=False
rbtAll.Checked=False
chkKeepLock.Checked=False
<enddata>

<Data>    VarName=$form1
#********************************************************************
# Form generated by GSAK form designer on Fr 09-Mai-2025 12:35:53
#********************************************************************

Name = File1
  Type = Form
  Caption = Select and Import a c:geo File:
  Height = 132
  Left = 435
  Top = 299
  Width = 470

Name = OK
  Type = Button
  Height = 25
  Left = 20
  Top = 55
  Width = 75
  Taborder = 1
  Caption = OK

Name = Cancel
  Type = Button
  Height = 25
  Left = 124
  Top = 55
  Width = 75
  Taborder = 2
  Caption = Cancel

Name = File1
  Type = File
  Height = 21
  Left = 19
  Top = 16
  Width = 423
  Taborder = 12
<enddata>
 
Oben