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

MoveCopy, MacroSet, <data>-Variable

baby hübner

Geomaster
Hallo Makro-Programmierer,

vielleicht könnt Ihr mir ja bei einem Problem helfen, an dem ich schon einige Zeit erfolglos rumtüftel. Letztendlich möchte ich innerhalb des Macros mit dem Befehl MoveCopy Cachedaten mehrmals mit verschiedenen Einstellungen zwischen verschiedenen DBs hin und herschicken (Details erläutere ich gerne, wenns wen interessiert).

Mein Problem ist nun, dass ich bis jetzt keinen Weg gefunden habe, die Zieldatenbank zur Laufzeit des Makros (zB über eine ComboBox oder Eingabefeld) festzulegen.

Ich weiß, dass ich alle Einstellungen zu MoveCopy im Eingabefenster unter Settings abspeichern und im Macro dann mit Settings="name" als Parameter aufrufen kann.

Auch habe ich es geschafft über <macro> als Einstellungsname eine <data>-Variable zu erzeugen und diese dann in mein Macro ein zu bauen. Dadurch wird mein Macro etwas portierbarer.

Es scheitert allerding immer daran, dass die "Destination database" in dieser Variablen statisch enthalten ist. Ich habe bis jetzt keine Möglichkeit gefunden dies zu ändern. Vielleich habt Ihr ja einen Trick auf Lager.

Vielen Dank,
bh
 

schuhhirsch

Geocacher
baby hübner schrieb:
Hallo Makro-Programmierer,

vielleicht könnt Ihr mir ja bei einem Problem helfen, an dem ich schon einige Zeit erfolglos rumtüftel. Letztendlich möchte ich innerhalb des Macros mit dem Befehl MoveCopy Cachedaten mehrmals mit verschiedenen Einstellungen zwischen verschiedenen DBs hin und herschicken (Details erläutere ich gerne, wenns wen interessiert).

Mein Problem ist nun, dass ich bis jetzt keinen Weg gefunden habe, die Zieldatenbank zur Laufzeit des Makros (zB über eine ComboBox oder Eingabefeld) festzulegen.

Ich weiß, dass ich alle Einstellungen zu MoveCopy im Eingabefenster unter Settings abspeichern und im Macro dann mit Settings="name" als Parameter aufrufen kann.

Auch habe ich es geschafft über <macro> als Einstellungsname eine <data>-Variable zu erzeugen und diese dann in mein Macro ein zu bauen. Dadurch wird mein Macro etwas portierbarer.

Es scheitert allerding immer daran, dass die "Destination database" in dieser Variablen statisch enthalten ist. Ich habe bis jetzt keine Möglichkeit gefunden dies zu ändern. Vielleich habt Ihr ja einen Trick auf Lager.

Vielen Dank,
bh


Ersetz in der <data>-Variable den Namen der Datenbank durch einen eindeutigen String ("%DB%" zum Beispiel), und diesen String kannst du zur Laufzeit per REPLACE gegen den Namen einer tatsächlichen Datenbank ersetzen. Diese im <data>-Block gespeicherten Einstellungen sind ja nichts weiters als eine normale Stringvariable, die du zur Laufzeit manipulieren kannst, und - wenn du weisst was du tust - auch frisch erzeugen kannst.

Ich hab grad kein GSAK greifbar und kann mir die Parameterreihenfolge und Syntax nicht merken, aber im Grunde sollte das so ausschauen

Code:
<data>varname=$MoveCopy
...irgendwas...
Database=default
...irgendwas...
<enddata>

Daraus machst du

Code:
<data>varname=$MoveCopyVORLAGE
...irgendwas...
Database=%DB%
...irgendwas...
<enddata>

Im Code schreibst du vor der Verwendung dann
Code:
$MoveCopy=REPLACE("%DB%","MeineDatenbank",$MoveCopyVORLAGE)
MACROSET...

An anderer Stelle, wenn du etwas in die Datenbank "XYZ" kopieren willst, dann schreibst du dort
Code:
$MoveCopy=REPLACE("%DB%","XYZ",$MoveCopyVORLAGE)
MACROSET...

Beachte, wo $MoveCopy und wo $MoveCopyVORLAGEsteht!

HTH,
SH
 
OP
baby hübner

baby hübner

Geomaster
Hey schuhhirsch,

klingt super. Mir war REPLACE bisher nicht unter die Finger gekommen und habe es (dilettantisch) mit der ner $Variablen innerhalb von <data> versucht, was zwangsläufig scheitern musste.

Ich werde es gleich heute Abend ausprobieren und dann berichten.

Vielen Dank für die schnelle und kompetente Hilfe :2thumbs:
bh
 
OP
baby hübner

baby hübner

Geomaster
Bin jetzt erst zum testen gekommen. Da waren noch einige andere Baustellen im Makro und der Erstellung der PQs abzuarbeiten.

Aber was soll ich sagen?

Klappt wunderbar! Genauso, wie Du es beschrieben hast! :up:
Nochmal danke!
 
Oben