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

Duplikate: GC behalten OC aussortieren? Wie machen?

Joggl

Geomaster
Hallo Zusammen,

ich würde gerne von GC und OC die Caches in GSAK haben.
Da die Logs auf GC meist neuer sind möchte ich die Caches primär von GC haben. Da es ja auch OC-Only Caches gibt, wäre es nett die auch mit drin zu haben..

Von GC habe ich ein PockeQuery importiert, nun möchte ich von OC noch ein gpx-File mit 500 Caches importieren.
Ich habe ein Macro gefunden was mir Duplikate aussortiert und wahlweise die älteren oder neueren behält und würde dies gerne nun so modifizieren dass es die doppelten Caches deren Code mit OC anfängt rausschmeisst und die Caches behält die mit GC anfangen.

Kann mir jemand diesbezüglich weiterhelfen? Das Macro welches ich habe ist dieses:

#***********************
# MacDescription =Remove Waypoints with Duplicate Coordinates
# MacFileName = RemoveDups.gsk
# MacAuthor = Kai Team, Cache U Nuts, Qwerty
# MacVersion=3.5
#***********************

#Version Check
VERCHECK version=7.0.0 This macro requires GSAK version 7 or later. Please update GSAK to run this macro (go to http://gsak.net)

#Initialize variables
$ThisRecord=0
$OrigSortOrder = $_SortBy

#Save existing UserData2 information for later restoration
DATASAVE Data=$d_User2

#Clear all macroflags
MacroFlag Type=Clear Range=All

#Gather user's preference for keeping newest or oldest of the waypoints with duplicated coordinates.
CHOOSE Msg="For waypoints with duplicate coordinates, do you want to keep:" Opt1="The Older Ones (created first)" Opt2="The Newer Ones (created later)"
IF $Result=1
$Sequence="A"
ELSE
$Sequence="D"
EndIF

#Copy Lattitude and Longitdue to UserData2
GOTO Position=Top
While not($_EoL)
# Show status of macro (every 10 records)
$ThisRecord = $ThisRecord + 1
IF frac($ThisRecord/10) = 0
$status = "Gathering Coordinates: " + "$ThisRecord" + " of " + "$_Count"
ShowStatus msg="$status" Width=250
EndIF
$d_User2=$d_Latitude + " " + $d_Longitude
GOTO Position=next
EndWhile

#Sort by UserData2 and date created, based on user preference
Sort By="user2;created" Sequence=$Sequence

#Identify and flag waypoints with duplicate coordinates
GOTO Position=Top
$ThisRecord=0
While not($_EoL)
# Show status of macro (every 10 records)
$ThisRecord = $ThisRecord + 1
IF frac($ThisRecord/10) = 0
$status = "Comparing Coordinates: " + "$ThisRecord" + " of " + "$_Count"
ShowStatus msg="$status" Width=350
EndIF
$Control=$d_User2
GOTO Position=Next
IF $_EoL
Break
EndIF
$Comparison=$d_User2
$data = $Comparison + ";" + $Control
$DistanceInFeet = Val(GCalc($data,"CalcDistance")) * 5280
IF ($DistanceInFeet < 5)
$d_MacroFlag=True
EndIF
ENDWHILE

#Filter for and delete all flagged waypoints
MFilter IF=$d_MacroFlag
IF $_FilterCount>0
$status = "Deleting " + "$_FilterCount" + " Duplicate Waypoints. Please wait for the macro to finish."
ShowStatus msg="$status" Width=350
MacroSet Dialog=Delete VarName=$Delete
Delete Settings=<macro>
ELSE
$Message="There are no duplicate waypoints to delete." + $_NewLine + $_NewLine + "Please click 'Continue' and wait a few seconds for the macro to clean up after itself."
PAUSE Msg=$Message
EndIF

#Cancel Filter, Restore UserData2 & User's Original Sort Order
CancelFilter
DATARESTORE Data=$d_User2
$OrigSort = Extract($OrigSortOrder, "=",1)
$OrigSequence = Extract($OrigSortOrder, "=",2)
SORT By=$OrigSort Sequence=$OrigSequence

<data> VarName=$Delete
[TfmDelete]
cbxStop.Checked=False
rbtFilter.Checked=True
rbtFlagged.Checked=False
rbtOnly.Checked=False
<enddata>





Viele Grüße
Jakob
 
Oben