Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Nach filtern suchen und in DB speichern

Das Schweizer Taschenmesser für Cachebeschreibungen.

Moderator: Schnueffler

TimberWuff
Geocacher
Beiträge: 21
Registriert: Di 20. Mär 2018, 21:37

Nach filtern suchen und in DB speichern

Beitrag von TimberWuff » Do 17. Jan 2019, 22:22

Nabend,

in welche Sprache wurde GSAK geschrieben, weis das jemand? Das interessiert mich rein Interesse halber.

Die wichtigere Frage ist ob es ein Makro gibt welches: nach einem bestimmten Filter filtert und dann in die Datenbank verschiebt die wie der Filter heist?

Beispiel: Der Filter soll alle Caches aus Thüringen filtern und auomatisch in die DB Thüringen schieben.

Werbung:
Benutzer 45915 gelöscht

Re: Nach filtern suchen und in DB speichern

Beitrag von Benutzer 45915 gelöscht » Do 17. Jan 2019, 23:02

Code: Alles auswählen

MFilter Where=g_contains('Thüringen', State)
Das ist Makrocode, welcher auf alle Caches aus Thüringen filtert.

Benutzer 45915 gelöscht

Re: Nach filtern suchen und in DB speichern

Beitrag von Benutzer 45915 gelöscht » Fr 18. Jan 2019, 15:24

Eine Liste der zur Verfügung stehenden Filter gibt es mit:

Code: Alles auswählen

$filters = SysInfo("Filters")
MsgOK Msg=$filters

TimberWuff
Geocacher
Beiträge: 21
Registriert: Di 20. Mär 2018, 21:37

Re: Nach filtern suchen und in DB speichern

Beitrag von TimberWuff » Fr 18. Jan 2019, 20:07

Danke für Eure Antworten, die Filter kenne ich. Ich wollte aber gleich mehrere Filter nacheinander aufrufen. Und wenn der Filter angewendet war, sollten die Caches gleich in die entsprechende DB verschoben werden.

Benutzer 45915 gelöscht

Re: Nach filtern suchen und in DB speichern

Beitrag von Benutzer 45915 gelöscht » Fr 18. Jan 2019, 20:11

TimberWuff hat geschrieben:
Fr 18. Jan 2019, 20:07
Danke für Eure Antworten, die Filter kenne ich. Ich wollte aber gleich mehrere Filter nacheinander aufrufen. Und wenn der Filter angewendet war, sollten die Caches gleich in die entsprechende DB verschoben werden.
Warum schreibst Du das nicht gleich in den ersten Post? :roll:
Wie soll denn das Makro die Filter aussuchen?

Benutzer 45915 gelöscht

Re: Nach filtern suchen und in DB speichern

Beitrag von Benutzer 45915 gelöscht » Fr 18. Jan 2019, 21:50

TimberWuff hat geschrieben:
Fr 18. Jan 2019, 20:07
Danke für Eure Antworten, die Filter kenne ich. Ich wollte aber gleich mehrere Filter nacheinander aufrufen. Und wenn der Filter angewendet war, sollten die Caches gleich in die entsprechende DB verschoben werden.
Dann mach das doch einfach.
Mustercode:

Code: Alles auswählen

FILTER Name="ABC"
MOVECOPY Settings="X">
FILTER Name="DEF"
MOVECOPY Settings="Y">
FILTER Name="GHI"
MOVECOPY Settings="Z">
Statt gesicherter Filter gehen natürlich auch "MFilter".

Benutzer 45915 gelöscht

Re: Nach filtern suchen und in DB speichern

Beitrag von Benutzer 45915 gelöscht » Sa 19. Jan 2019, 20:35

TimberWuff hat geschrieben:
Do 17. Jan 2019, 22:22
[...]
Beispiel: Der Filter soll alle Caches aus Thüringen filtern und automatisch in die DB Thüringen schieben.
Sollen die anderen Filter ähnlich aussehen? Also: sächsische Caches in die DB "Sachsen" verschieben?

TimberWuff
Geocacher
Beiträge: 21
Registriert: Di 20. Mär 2018, 21:37

Re: Nach filtern suchen und in DB speichern

Beitrag von TimberWuff » So 20. Jan 2019, 21:17

Danke für deine Hilfe.
Ja, es sollen alle Bundesländer sozusagen ausgewählt werden und die DB geschoben werden. Die DBs heisen alle wieder die Bundesländer

Benutzer 45915 gelöscht

Re: Nach filtern suchen und in DB speichern

Beitrag von Benutzer 45915 gelöscht » So 20. Jan 2019, 21:40

Das hab ich Sonnabend mal auf Verdacht angefertigt (Ich lag mit einer Erkältung flach):
Das Makro bewegt die Caches in die Ziel-Datenbanken, sie werden also aus der Quell-Datenbank entfernt.

Code: Alles auswählen

#******************************************************
# MacVersion = 0.5
# MacDescription = Move State Caches to State Databases
# MacAuthor = SamHenkel
# MacFileName = States2StatesDb.gsk
# MacUrl =
#******************************************************

	SPEEDMODE Status=On

	$CurrentDB = $_CurrentDatabase
	$dbnames = SysInfo("Databases")

	$_sql = "Select Distinct State from cachesall where $_Where"
	$states = Sqlite("sql",$_sql)
	$states = Replace($_CrLf,";",$states)
	$count = (RegExCount(";",$states))+1

#****** Select States per Database ********************
	
	$x=0

	REPEAT
   	$x = $x + 1
	$statename = Extract($states,";", $x)
	$dbtrue = AT($statename,$dbnames)

	IF not($dbtrue=0)
	   MFilter Where=g_contains($statename,State)	   
	   $Move = Replace("~~DATABASE~~","$statename",$Move)
  	     MACROSET Dialog=MoveCopy VarName=$Move
	     MoveCopy Settings=<macro>   
	     $Move = Replace("$statename","~~DATABASE~~",$Move)
	ENDIF

	DATABASE Name=$CurrentDB

	UNTIL $x=$count

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

<data> VarName=$Move
[TfmMove]
cbxDestination.Text=~~DATABASE~~
rbtAdd.Checked=True
rbtAddFlag.Checked=False
rbtAddIgnore.Checked=False
rbtCopy.Checked=False
rbtExistIgnore.Checked=False
rbtFlagOnly.Checked=False
rbtMove.Checked=True
rbtReplace.Checked=False
rbtReplaceFlag.Checked=True
chkDisplay.Checked=False
chkAddIgnore.Checked=False
chkMergeLogs.Checked=False
chkMergeWaypoints.Checked=False
rbtCustomHalt.Checked=False
rbtCustomIgnore.Checked=False
rbtCustomSync.Checked=True
<enddata>

NB: Ich habe das nur mit einer kleinen Test-Db gecheckt. Bitte mache unbedingt vor Gebrauch ein GSAK-Backup

TimberWuff
Geocacher
Beiträge: 21
Registriert: Di 20. Mär 2018, 21:37

Re: Nach filtern suchen und in DB speichern

Beitrag von TimberWuff » Mo 21. Jan 2019, 20:48

Danke für deine Arbeit. Habe es mal durchlaufen lassen. Bei den Bundesländern: Niedersachsen, Sachen und Sachsen-Anhalt bringt es noch was durcheinander. Verschiebt nach Sachsen und Niedersachsen auch welche die in Thüringen, Bayern usw gehören.

Antworten