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

Löser?

richi_rich

Geonewbie
Hallo!

Ich war zwar schon einmal angemeldet, aber anscheinend wurde mein Account auf Grund längerer Abwesenheit gelöscht.
Ich beschäftige mich seit einigen Tagen mit cachewolf, der mir sehr gut gefällt.
Leider sind jedoch noch viele Fragen offen, die ich nun Schritt für Schritt versuche zu klären.

In unserem Forum in A, hat sich nun "Salzkammergut" angemeldet, der hier auch etwas helfend eingreift. Danke.

Spezielle Fragen dürften hier aber besser aufgehoben sein.
Als erstes möchte ich hinter die Geheimnisse des Lösers kommen.

Gibt es eigentlich eine Möglichkeit, das man sich im Löser die N und E Koordinaten getrennt aus dem Wegpunkt anzeigen lassen kann, um damit weiterzurechnen?
mit dem Befehl $xxxx wird ja ein Mix aus den beiden Koordinaten angezeigt die für weitere Berechnungen eher nicht zu gebrauchen sind. ( so nach dem Motto: N2 =N1 *blabla+labla...; E2=E1+.....)


PS: besten Dank an die Entwickler dieses tollen Programmes, Ihr leistet sehr gute Arbeit. Auch ist die Dokumentation sehr gut gemacht, auch wenn sie noch etwas lückenhaft ist!
 

snaky

Geowizard
Möglicherweise hilft da der "mid"-Befehl!?

Also mid($xxxx,5,6) oder sowas. Ich gebe aber zu, dass ich nicht ganz verstanden habe, was Du genau brauchst bzw. machen willst (aber mein Hirn ist heute auch schon ziemlich matschig).

Kleine Anmerkung: Großbuchstaben (auch im Subject) kommen beim Leser üblicherweise als "Schreien" rüber. Da zucke ich schon beim Lesen zusammen...
 

greiol

Geoguru
du kannst das vermutlich indirekt machen über konstruktionen wie
A=14.123
B=6.012
"N 49 "(A)"E 11 "(B)
C=A+...
D=B-...
"N 49 "(C)" E 11 "(D)
usw.

ist allerdings nicht so wahnsinnig elegant :eek:ps:
 

salzkammergut

Geomaster
@richi_rich: Derzeit gibt es diese Möglichkeit nicht. Ich hab sie aber auch noch nie gebraucht und habe doch schon einige Multis mit dem Solver gelöst. Erklär bitte einmal wie Du Dir die Verwendung vorstellst.

Grüße
salzkammergut
 
OP
R

richi_rich

Geonewbie
Das mit den Großbuchstaben war keine Absicht, ich kenne das SCHREIEN.
Sorry!

Ich will eigentlich nur die Startkoordinaten aus der Beschreibung direkt übernehmen ohne das ich Sie im Löser eingeben muss. Somit könnte man eine Fehlerquelle ausschalten.

Das mit dem mid-Befehl ist eine sehr gute Idee, aber leider funktioniert sie bei mir mit einer variablen nicht!
 
OP
R

richi_rich

Geonewbie
salzkammergut schrieb:
@richi_rich: Derzeit gibt es diese Möglichkeit nicht. Ich hab sie aber auch noch nie gebraucht und habe doch schon einige Multis mit dem Solver gelöst. Erklär bitte einmal wie Du Dir die Verwendung vorstellst.

Grüße
salzkammergut

Ich möchte eine "vollautomatische" Berechnung erstellen, vor allem bei Multis die immer von einer Station zur nächsten berechnet werden.
zB: http://www.geocaching.com/seek/cache_details.aspx?guid=010ebf57-c5de-43fb-83e1-b955d8174ef8
 

snaky

Geowizard
Hmm... ich bin immer noch nicht sicher, ob ich es richtig verstanden habe, aber bei mir klappt das so:

Code:
test=$GC1CDP8
test
test2=mid(test,1,9) mid(test,10,3)+100 mid(test,13,11) mid(test,24,3)-100
test2

Augabe:
Code:
N 49° 56.237 E 008° 41.212
N 49° 56.337 E 008° 41.112

Bisschen frickelig, aber es klappt.
 

snaky

Geowizard
Ah. Zeitlich überschnitten.

Also in Deinem Fall:
Code:
N1 = "48° 11.593´"
E1 = "15° 45.779´"

A=10 #geraten

#N2 = N1 + 33*A
#E2 = E1 – 2*A

Neu="N "mid(N1,1,7) mid(N1,8,3)+33*A ", E "mid(E1,1,7) mid(E1,8,3)-2*A
Neu

Was Du "von Hand" machen musst, ist die Anführungszeichen um die Koors machen. Und aus E2 E1 machen, denn da ist ein Fehler im Listing. ;)

WolfLanguage ist 'ne Sprache, in der sogar ich programmieren kann. :silvester_smilie:
 
OP
R

richi_rich

Geonewbie
So ich habe einmal anhand der obigen Infos eine Lösung gebastelt.
folgende Fehler meinerseits sind mir aufgefallen:
1) Variablen die berechnet werden müssen vorher definiert werden.
Also wenn a=x+y, dann muß x und y vorher schon definiert werden.
2) Variablen müssen immer richtig geschrieben werden. Groß und Kleinschreibung beachten.

Es wurden alle Variablen am Anfang definiert, da nicht benötigte sowieso nicht verwendet werden. Die Variablen werden dann an jeder Station mit den richtigen Werten gefüllt.

X=crosstotal(1234)
Y=1
A=X+Y
B=crosstotal(1970)
C=1
D=crosstotal(123)
E=1
F=val("Muster")
G=val("X")
H=val("Blumenname")
I=1
J=1
K=1
L=1
M=c(3)
N=1
O=1
P=1
Q=1
R=q(1970)
S=1
T=val("meier")
U=1
V=1
W=1



N1=mid($GCMEZ2,7,6)*1000;N1
E1=mid($GCMEZ2,21,6)*1000;E1

N2 = N1 + 33*A
E2 = E1 – 2*A
N3 = N2 + 10*A + B
E3 = E2 + 8*A
N4 = N3 + C
E4 = E3 + (A + C)/(A-B)
N5 = N4 – 2*A + 3*B
E5 = E4 – 10*D – 9*B – 2*A
N7 = N5 + G / (A-B)
E7 = E5 – G
N8 = N7 + H / A – D
E8 = E7 – H – A*B
N10 = N8 – C + K *B + A + D
E10 = E8 – F + J
N11 = N10 – F + C + B*B + L
E11 = E10 + K*G – C
N13 = N11 - M*L + C + B
E13 = E11 + P
N14 = N13 – A*C + F + H – K*M + Q*S – U*K + A*Q + 4
E14 = E13 + B*D*G – J*L – P – T + R + (B+L)*B
cls()


IF $00MEZ2="" THEN
$00MEZ2 = "N 48° "N2/1000" E015° "E2/1000""
"Stage 1 = " $00MEZ2
goto($00MEZ2); STOP
ENDIF
IF $01MEZ2="" THEN
$01MEZ2 = "N 48° "N3/1000" E015° "E3/1000""
"Stage 2 = " $01MEZ2
goto($01MEZ2); STOP
ENDIF
IF $02MEZ2="" THEN
$02MEZ2 = "N 48° "N4/1000" E015° "E4/1000""
"Stage 3 = " $02MEZ2
goto($02MEZ2); STOP
ENDIF
IF $03MEZ2="" THEN
$03MEZ2 = "N 48° "N5/1000" E015° "E5/1000""
"Stage 4 = " $03MEZ2
goto($03MEZ2); STOP
ENDIF
IF $04MEZ2="" THEN
$04MEZ2 = "N 48° "N7/1000" E015° "E7/1000""
"Stage 5 = " $04MEZ2
goto($04MEZ2); STOP
ENDIF
IF $05MEZ2="" THEN
$05MEZ2 = "N 48° "N8/1000" E015° "E8/1000""
"Stage 6 = " $05MEZ2
goto($05MEZ2); STOP
ENDIF
IF $06MEZ2="" THEN
$06MEZ2 = "N 48° "N10/1000" E015° "E10/1000""
"Stage 7 = " $06MEZ2
goto($06MEZ2); STOP
ENDIF
IF $07MEZ2="" THEN
$07MEZ2 = "N 48° "N11/1000" E015° "E11/1000""
"Stage 8 = " $07MEZ2
goto($07MEZ2); STOP
ENDIF
IF $08MEZ2="" THEN
$08MEZ2 = "N 48° "N13/1000" E015° "E13/1000""
"Stage 9 = " $08MEZ2
goto($08MEZ2); STOP
ENDIF
IF $13MEZ2="" THEN
$13MEZ2 = "N 48° "N14/1000" E015° "E14/1000""
"FINAL = " $09MEZ2
goto($13MEZ2); STOP
ENDIF

Man könnte die Formel jetzt noch um die fehlenden Stages erweitern die durch Peilung zu ermitteln sind. Das hätte ich aber schon am besten vorher machen sollen, weil jetzt fehlen mir die passenden WP.

Die IF THEN Schleifen wurden mit dem Befehl sk(14) erzeugt.
Nun kann man von Stage zu Stage gehen und die Variablen nach der Reihe eintragen.

Was mich jetzt noch stört, ist das bei einem Multi in der Regel die Stage1 der Startpunkt ist. (so soll es zu mindestens in Österreich sein).
Der Befehl SK beginnt aber mit dem Wegpunkt 00 und nennt ihn dann Stage 1.
Das passt nicht, und ist sehr verwirrend! Eigentlich sollte er mit 02 und Stage2 beginnen. Kann man das beeinflussen?
 

Robin888

Geomaster
richi_rich schrieb:
So ich habe einmal anhand der obigen Infos eine Lösung gebastelt.
folgende Fehler meinerseits sind mir aufgefallen:
1) Variablen die berechnet werden müssen vorher definiert werden.
Also wenn a=x+y, dann muß x und y vorher schon definiert werden.
Naja, das ist kein Fehler. Wenn er nicht weiß, welche Werte er addieren soll, dann bricht er halt ab.
Zwei Tips hierzu:

1.) Schreib die Definitionen der Variablen zwischen die IF-Aufrufe.
Also z.B.:
Code:
.
.
.
IF $00MEZ2="" THEN
  $00MEZ2 = "N 48° "N2/1000" E015° "E2/1000""
  "Stage 1 = " $00MEZ2
  goto($00MEZ2); STOP
ENDIF

Var2= #Beschreibung von Var2

IF $01MEZ2="" THEN
  $01MEZ2 =f(Var2)
  "Stage 2 = " $01MEZ2
  goto($01MEZ2); STOP
ENDIF
.
.
.
Dann wird Var2 erst berücksichtigt, wenn Du den Wert schon eingetragen hast. (Nach jedem IF-Block wird die Berechnung gestoppt.)

2.) Teilweise helfen globale Variablen ($Var) weiter. Z.B. gibt es Multis, die die Wegpunkte schon vorgegeben haben an denen man Zahlen für den Final sammeln muß. In diesem Fall versagt der sk(). Ich habe dafür folgende Struktur geschrieben:
Code:
cls()

#Gehe zu Station n
#Frage n

  $Xn= #Beschreibung

  IF $Xn="" THEN
    "Station n = " $WPn
    goto($WPn); STOP
  ENDIF

...

#Gehe zu Final
  $WPfinal=
  "Final = " $WPfinal
  goto($WPfinal)
In diesem Fall wirst Du immer zur nächsten unbeantworteten Station geführt. Die Dollarzeichen deklarieren globale Variablen, daß heißt, IF kann sie auswerten, auch, wenn sie noch nicht belegt sind.

Code:
2) Variablen müssen immer richtig geschrieben werden. Groß und Kleinschreibung beachten.
Das ist auch kein Fehler. :)

richi_rich schrieb:
Was mich jetzt noch stört, ist das bei einem Multi in der Regel die Stage1 der Startpunkt ist. (so soll es zu mindestens in Österreich sein).
Der Befehl SK beginnt aber mit dem Wegpunkt 00 und nennt ihn dann Stage 1.
Das passt nicht, und ist sehr verwirrend! Eigentlich sollte er mit 02 und Stage2 beginnen. Kann man das beeinflussen?
Hm. Ich muß zugeben, daß ich das auch manchmal seltsam finde. Aber einen automatischen Zähler, der mit 2 beginnt fände ich wahrscheinlich noch seltsamer. ;-)
Andererseits: Er könnte ja mit 01 und "Stage 1" beginnen. Und wenn man den ersten IF-Block nicht braucht kann man ihn immer noch löschen.

Robin(888)
 

Robin888

Geomaster
Wobei ich nochmal sagen muß, daß ich die Cachebeschreibung etwas seltsam finde.
Als Mathematiker kann ich einen Ausdruck wie
"48° 11.593' + 33*A", wobei A eine natürliche (dimensionslose!) Zahl ist nicht gutheißen! (Und strenggenommen noch nicht einmal interpretieren. ;-))
Die 33*A werden ja explizit auf den kompletten Term 48° 11.593' angewendet und nicht nur auf Teile.
Ich vermute es soll heißen:
48° 11.(593+33*A), ja? (Wobei das natürlich auch keine mathematische Schreibweise ist, sondern eine Geocaching-übliche).
Aber was ist dann mit Minutenübergängen?

Die Werte für R, S, T und U würde ich am Ende des Codes, vor den Final schreiben, damit die erst zugewiesen werden, wenn man sie garantiert hat (und braucht).

Insgesamt ein sehr ungünstiger Cache um ihn im CacheWolf vorzubereiten. :-/ Gibt es halt auch.

Robin(888)
 
Oben