If-Then bzw. Case-Else Abfrage direkt in WsWIN

Fragen, Anregungen zur PC-Wetterstations-Software

Moderatoren: Werner, Tex, weneu

Antworten
joergeli
Beiträge: 669
Registriert: 30 Aug 2006 17:32
Wohnort: 61279 Grävenwiesbach (Hessen)
Kontaktdaten:

If-Then bzw. Case-Else Abfrage direkt in WsWIN

Beitrag von joergeli »

Hallo zusammen,

durch den Thread
http://www.pc-wetterstation.de/forum/vi ... php?t=5344

ist bei mir (mal wieder :wink:) die Frage aufgetaucht, ob man eine
Abfrage mit mehr als 2 Alternativen direkt mit den Variablen
von WsWIN durchführen kann.

Holli hatte in dem o.a. Thread die compare-Funktion angesprochen.
Hiermit kann ich aber nur einen einfachen ja/nein-Vergleich durchführen.

Wenn ich aber mehrere Zustände vergleichen will
(z.B. hat es mehr als 10mm, mehr als 20mm, mehr als 30mm, etc. geregnet und dann nur die Ausgabe "Es hat mehr als 20mm geregnet" haben will)
komme ich mit der compare-Funktion allein nicht weiter.
Habe mal ein wenig rumgespielt und die Ausgaben der compare-Abfragen
dann in eine Speichervariable (%ws_setmem[x]=zzzzz%) geschrieben
und diese dann an die nachfolgende compare-Abfrage übergeben,
Allerdings kommt dann das Problem auf, das man die gleiche setmem-Funktion - ich glaube - nur 1 mal in einer Zeile verwenden darf.
Außerdem wurde das Ganze irgendwann so unübersichtlich, daß ich aufgegeben habe. :oops:

Deshalb meine Frage:
Gibt es ein Äquivalent zu If-Then bzw. Case-Else direkt in WsWIN,
bzw. hat jemand einen Kniff gefunden, wie man es realisieren könnte ?

Gruß
Jörg
http://www.joergeli.de
WS 2500PC V3.1 mit Superhet-Empfänger HFS302, WsWIN V2.98.7
WS 3001, 2xWS1000, WS2000, WS2500
Wetterstation Heinzenberg/Taunus
Holli

Beitrag von Holli »

Code: Alles auswählen

%ws_setmem[1]=Es ist trocken%
%ws_setmem[2]=%ws_compare[1]=%curminmaxhour[4,1,34]%~0,1~Es hat vor %ws_desert_duration% zuletzt geregnet~%ws_getmem[1]%%%
%ws_setmem[3]=%ws_compare[2]=%curval[34]%~0,1~Es regnet im Moment~%ws_getmem[2]%%%
%ws_setmem[4]=%ws_compare[2]=%curval[34]%~0,3~Es regnet im Moment kräftig~%ws_getmem[3]%%%
%ws_setmem[5]=%ws_compare[2]=%curval[34]%~0,7~Es gießt wie aus Eimern. Die Hunde wollen nicht gassi gehen~%ws_getmem[4]%%%
%ws_setmem[6]=%ws_compare[2]=%curval[34]%~1~Es schüttet in Strömen. Die Frösche stellen sich unter~%ws_getmem[5]%%%
%ws_setmem[7]=%ws_compare[2]=%curval[34]%~1,5~Es prasselt gerade unglaublich. Die Fische rufen den Seenotrettungsdienst an~%ws_getmem[6]%%%
%ws_setmem[8]=%ws_compare[2]=%curval[34]%~2~Hier schwimmt gleich alles weg. Die Enten wollen in die Rettungsboote~%ws_getmem[7]%%%
%ws_getmem[8]%
finde ich nicht wirklich unübersichtlich.
stuggi
Beiträge: 155
Registriert: 12 Dez 2006 23:06

Beitrag von stuggi »

Hallo,
Ich habe ich gebastelt:

Code: Alles auswählen

%ws_setmem[9]=%ws_calc1[/]=%ws_calc[+]=%curval[2]%~%curval[43]%~1%~2~1%% %ws_delline%
%ws_setmem[10]=%ws_compare[4]=%rain1h%~0.2~z. Zt. Tau / Nieselregen~z. Zt. Schneeregen%% %ws_delline%
%ws_setmem[5]=%ws_compare[4]=%rain1h%~0.2~z. Zt. Reif / Schneegriesel~z. Zt. Schneefall%% %ws_delline%
%ws_setmem[11]=%ws_compare[4]=%ws_getmem[9]%~0.7~%ws_getmem[5]%~%ws_getmem[10]%%% %ws_delline%
%ws_setmem[4]=%ws_compare[4]=%rain1h%~0.2~z. Zt. Tau / Nieselregen~Regen%% %ws_delline%
%ws_setmem[3]=%ws_compare[4]=%ws_getmem[9]%~1.3~%ws_getmem[11]%~%ws_getmem[4]%%% %ws_delline%
%ws_setmem[6]=%ws_compare[4]=%rain1h%~0.2~~z. Zt. leichter %% %ws_delline%
%ws_setmem[7]=%ws_compare[2]=%curval[34]%~0.2~z. Zt. mäßiger ~%ws_getmem[6]%%% %ws_delline%
%ws_setmem[8]=%ws_compare[2]=%curval[34]%~0,4~z. Zt. starker ~%ws_getmem[7]%%% %ws_delline%
%ws_setmem[18]=%ws_compare[1]=%ws_calc1[2]=%curval[25]%~%curval[26]%~0%~14~%ws_getmem[8]%%ws_getmem[3]%~ohne Regen seit %ws_desert_durations% ++%% %ws_delline%
%ws_getmem[18]% %ws_compare[2]=%curminmaxhour[4,1,34]%~0,2~ mit %curminmaxhour[4,1,34]% mm letzte h ++~ %
Wenn die diese zeile nimmst:

Code: Alles auswählen

%ws_setmem[18]=%ws_compare[1]=%ws_calc1[2]=%curval[25]%~%curval[26]%~0%~14~%ws_getmem[8]%%ws_getmem[3]%~ohne Regen seit %ws_desert_durations% ++%% %ws_delline%
siehst du ja was geht.
warum nimmst du nicht für jeden 20mm eine eigene compare-Funktion?


@Holli
wie geht das?

Code: Alles auswählen

Es ist jetzt 2,2K wärmer als gestern um diese Zeit. 
Es ist heute 3,5K kälter als im langjährigen Monatsmittel. 
ein Tipp wär nett.

Grüßle Chris
Holli

Beitrag von Holli »

stuggi hat geschrieben: @Holli
wie geht das?

Code: Alles auswählen

Es ist jetzt 2,2K wärmer als gestern um diese Zeit. 
Es ist heute 3,5K kälter als im langjährigen Monatsmittel. 
ein Tipp wär nett.

Code: Alles auswählen

				<tr>
					<td>Es ist heute
					%ws_setmem&#91;1&#93;=%ws_calc&#91;-&#93;=%ws_normaltemp%~%avgval&#91;2&#93;%~1%%
					%ws_setmem&#91;2&#93;=%ws_calc&#91;*&#93;=%ws_getmem&#91;1&#93;%~-1,0~1%%
					%ws_compare&#91;2&#93;=%ws_getmem&#91;1&#93;%~0,0~%ws_getmem&#91;1&#93;%~%ws_getmem&#91;2&#93;%% Grad
					%ws_compare&#91;2&#93;=%ws_getmem&#91;1&#93;%~0,0~k&auml;lter~w&auml;rmer% als im langj&auml;hrigen Monatsmittel und
					%ws_setmem&#91;3&#93;=%ws_calc&#91;-&#93;=%avgvalpast&#91;2~00~00~-001&#93;%~%avgval&#91;2&#93;%~1%%
					%ws_setmem&#91;4&#93;=%ws_calc&#91;*&#93;=%ws_getmem&#91;3&#93;%~-1,0~1%%
					%ws_compare&#91;2&#93;=%ws_getmem&#91;3&#93;%~0,0~%ws_getmem&#91;3&#93;%~%ws_getmem&#91;4&#93;%% Grad
					%ws_compare&#91;2&#93;=%ws_getmem&#91;3&#93;%~0,0~k&auml;lter~w&auml;rmer% als heute vor einem Jahr.</td>
				</tr>
joergeli
Beiträge: 669
Registriert: 30 Aug 2006 17:32
Wohnort: 61279 Grävenwiesbach (Hessen)
Kontaktdaten:

Beitrag von joergeli »

@Holli

Tja, wenn man - wie Du - den richtigen Ansatz nimmt, funktioniert's auch ;-)
Ich habe immer falsch angefangen und mich dann in den ws_setmems und ws_getmems verstrickt :wink:

Danke und Gruß
Jörg
http://www.joergeli.de
WS 2500PC V3.1 mit Superhet-Empfänger HFS302, WsWIN V2.98.7
WS 3001, 2xWS1000, WS2000, WS2500
Wetterstation Heinzenberg/Taunus
Antworten