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

GCCode aus Liste auswählen und markieren

EBSSgeo

Geocacher
Hallöchen,

Suche ein Makro was folgendes kann:
- In einer DB sollen alle Caches markiert werden, welche auf einer Liste stehen.
- Fomat der Liste wäre *.txt oder *.csv

Bsp:
In Liste stehen GC1 / GC3 / GC6
in DB stehen: GC1 / GC2 / GC3 / GC4 /GC5 /GC6 /GC7 /GC8
---> nach Makro-Aufruf
in DB soll markiert sein: GC1 /GC3 /GC6

Besten Dank
 

kerberos187

Geocacher
Was meinst Du mit markieren?

Quick and Dirty zum Raussuchen:
GC1 bis GCx stehen in Tabelle1 in der Spalte GCCode, zweite Liste in Tabelle2 importieren, dann

SELECT Tabelle1.GCCode from Tabelle1, Tabelle2 where Tabelle1.GCCode=Tabelle2.GCCode;
 

Eastpak1984

Geoguru
Ich würde wohl einfach mit Bordmitteln, diese Liste an Caches einfach aktualisieren, und dabei das User Flag aktivieren lassen.
 
OP
E

EBSSgeo

Geocacher
@kerberos187
Soll ich das als Makro eingeben?
Markieren: User Flag setzen. Oder Hintergrund farbig markieren. Was einfacher geht.

@Eastpak1984
Mit Bordmitteln? Verstehe nicht wie du das machen willst. Die Tabelle mit den Codes welche in der DB gesucht werden, sind doch eine externe Liste.
 

8812

Geoguru
Liste in neue, leere Db importieren. Alle Caches aus neuer Db in Ziel-Db bewegen, mit der Einstellung "Flag only".

6785371a3ffbf67cee549721b89a38c0.png


Hans
 

8812

Geoguru
Noch einfacher geht das hier:

Meine externe Liste sieht so aus:

337b81f0a190acf14607534ba573a9ed.png


Meine Datenbank so:

760ce7614740624ee2b391a53f3abd20.png


Nach dem Lauf dieses Makros sind die Caches entsprechend geflagt.
Code:
#*******************************************
# MacVersion = 0.3
# MacDescription = Match code from text file
# MacAuthor = HHL
# MacFileName = CodeMatch.gsk
# MacUrl =
#*******************************************

	FileRead File=C:\temp\testcodes_macro.txt 		# Pfad anpassen! Ich war zu faul eine Auswahlform zu kreieren. ;-)
	   $code = extract($line,chr(44),1)

	   IF seek($code)
	     USERFLAG type=set range=1
	   ENDIF
	EndRead

Statt des Userflags kannst Du auch andere Aktionen ausführen. Sei kreativ. ;-)

Frohes Jagen
Hans
 

8812

Geoguru
OK, weil heute Mittwoch ist:

Code:
#*******************************************
# MacVersion = 0.4
# MacDescription = Match code from text file
# MacAuthor = HHL
# MacFileName = CodeMatch.gsk
# MacUrl =
#*******************************************
# GC Code must be first part of a line
#*******************************************

	MacSettings Type=R FileCheck=N

	WHILE TRUE
	    $FormExit = form($Form1,"")
	    BEGINCASE
	        CASE $FormExit = "SystemExit"
	        RETURN Msg="Macro Canceled"

	        CASE $FormExit = "OK"
	       GOSUB Name=Run
        BREAK

	        CASE $FormExit = "Cancel"
        RETURN Msg="Macro Canceled"
	    ENDCASE
	 ENDWHILE

	BeginSub Name=Run
	FileRead File=$File1 		# Pfad anpassen!
	   $code = extract($line,chr(44),1)

	   IF seek($code)
	     USERFLAG type=set range=1
	   ENDIF
	EndRead 
	EndSub

	MacSettings Type=S Vars=File1 File=CodeMatch.xml

<Data> VarName=$form1
#********************************************************************
# Form generated by GSAK form designer on Thu 07-Sep-2017 14:51:24
#********************************************************************

Name = Form1
  Type = Form
  Caption = Match codes:
  Height = 174
  Width = 487

Name = OK
  Type = Button
  Height = 25
  Left = 119
  Top = 89
  Width = 75
  Taborder = 8
  Caption = OK

Name = Cancel
  Type = Button
  Height = 25
  Left = 290
  Top = 89
  Width = 75
  Taborder = 9
  Caption = Cancel

Name = Label1
  Type = Label
  Height = 16
  Left = 18
  Size = 10
  Top = 18
  Width = 239
  Caption = Select the text file containing the codes:

Name = File1
  Type = File
  Height = 21
  Left = 18
  Top = 41
  Width = 439
  Taborder = 12

<enddata>
 
OP
E

EBSSgeo

Geocacher
Danke erstmal für Eure Antworten, werde aber erst morgen dazu kommen dies zu probieren da ich derzeit nicht am heimischen System sitze.
 

8812

Geoguru
RSKBerlin schrieb:
8812 schrieb:
RSKBerlin schrieb:
Ich würde zwei Datenbanken und das comparedb-Makro nehmen. das setzt User Flags, wenn Du es ihm sagst. CSV importieren geht so.

Meines Wissens will er gar nichts importieren, sondern nur die in der Liste enthaltenen Codes in der Db markieren.
Ja genau. Und das ist ein schneller, einfacher Weg.

Ja, nur dazu muß man nichts importieren. Das ist völlig überflüssig. Mein Makro vergleicht die in der Db enthaltenen Caches mit denen in der Liste ganz ohne überflüssigen Import und flagt dann die, die in der Liste enthalten sind. Aber da wir immer noch nicht genau wissen, was der TO eigentlich will (das erste Posting war etwas schwammig hinsichtlich der Fragestellung) ist das alles Spekulation.
 

Mausebiber

Geomaster
Mal unabhängig davon was der TO genau meint finde ich die Makros von Hans wirklich gut und nützlich, besten Dank dafür.

Gruß, MB
 

Mausebiber

Geomaster
Kurze Rückfrage:
Wenn ich das Makro richtig lese, wird nur GC Nummer der Liste und der Datenbank verglichen, der restliche Text in der Beispiel-Liste ist nur Füllmaterial, das Komma dient als Separator und nur der erste Teil bis zum Komma wird gelesen. Stimmt das so?

Gruß, MB
 

8812

Geoguru
Mausebiber schrieb:
Kurze Rückfrage:
Wenn ich das Makro richtig lese, wird nur GC Nummer der Liste und der Datenbank verglichen, der restliche Text in der Beispiel-Liste ist nur Füllmaterial. Stimmt das so?

Gruß, MB

Ja, das ist richtig so. Das Makro prüft lediglich welche Codes der Liste sich in der Db befinden. Der Rest in meiner Test-Liste war nur zum Testen (sic!) gedacht.

Hans
 

8812

Geoguru
Mausebiber schrieb:

Gerne. Und für den Import gibt es ja ganz normal die Funktion des txt-Importes per Load-Befehl. Und für ganz schräge Sachen ("Ich lese gerade einen Reiseblog und der hat im ganzen Text einige GCCodes vermerkt. Wie bekomme ich das in GSAK?") gibt es ja das Makro GrabByCode welches jeglichen Code, der sich in der Zwischenablage befindet, regexed und dann die Caches per Api downloaded. ;-) Damit bekommt man endlich auch das Ergebnis aus der neuen Suche geladen.
 

Mausebiber

Geomaster
Bissel viel auf einmal, muss mich langsam in die Materie einarbeiten, will nicht nur die Makros nutzen, versuche die Syntax zu verstehen und auch zu variieren. Immer einen Schritt nach dem anderen :eek:) Da das GrabByCode aber auch Texte analysiert und Daten impotiert werde ich mir das als nächstes "zur Brust" nehmen :eek:)

Nochmals besten Dank, MB
 
OP
E

EBSSgeo

Geocacher
@Hans (8812)
Du bist ein Genie, genau das was ich gesucht habe.
Einfach nur spitze. Sogar mit Auswahlbox.
Vielen Dank dafür.
 
Oben