Hallo,
ich habe doch gesagt, es kommt ein Beispiel.
Ja, dieses Wort "loop". Mir fiel eben nichts anderes ein. Ich dachte wohl, es ist bekannt, da es ja auch in EXCEL.-Macros so heißt.
Soll einfach heißen: Das Folgende wird dreimal gemacht, wie in einer Schleife,
Und dieses war wirklich etwas sophisticated.Da LS den Operator "!==" nicht kennt, muss noch etwas Feintuning gemacht werden.
Nur zur Erklärung:
Die Funktion "strpos(haystack,needle)" schaut nach, ob die Nadel im Heuhaufen ist, also "strpos("Rucksack","a"), ob "a" in "Rucksack" enthalten ist.
Gut, wenn "Ja", wird die Position des ersten Vorkommens zurückgegeben, hier also "5".
5 ??? Ja, denn die erste Position hat den Index "0".
Wenn der Buchstabe nicht enthalten ist, wird "false" zurückgegeben. Und hierin liegt die Crux.
Denn die hier benutzte Programmiersprache behandelt "false" und "0" ähnlich. Daher kannst Du in die Relevanzgleichung eben "0" schreiben, oder auch "Hund"=="Katze", was offensichtlich falsch ist. Beide Male wird die Frage nicht angezeigt.
Um also zu testen, ob der Zahlwert "0" oder der boolsche Wert "false" gemeint ist, muss man anstatt "==" "===" benutzen; die drei Gleichheitszeichen testen sowohl auf denselben Typ wie auch auf denselben Wert.
Und das ist bei LS nicht implementiert.
Um das alles zu vermeiden, setze ich einfach irgendein Zeichen VOR meinen String; damit hat später ein gefundener Buchstabe mindestens den Wert "1", und ich kann beruhigt auf "0 (= false)" testen.
Dies alles ist aber nur Theorie und muss Dich im Ernstfall nicht kümmern.
Jetzt zum Beispiel:
Darin habe ich der Übersichtlichkeit halber die Anfangsgruppen, die nichts mit dem Problem zu tun haben gelöscht.
Außerdem eine Quote auf die "Alten" gesetzt.
Die gesamten Gleichungsfragen sind im Moment sichtbar (damit Du siehst, was passiert); diese werden natürlich später nicht angezeigt.
Auch wenn es etwas lang aussieht, ist es meiner Ansicht nach ziemlich leicht verständlich.
Es werden ja nur die Funktionen "join" "rand", "strlen", "substr" und "strpos" verwendet.
Bei Bedarf solltest Du sie Dir hier einmal ansehen.
www.limesurvey.org/manual/Expression_Man...mplemented_functions
Joffm
P.S.
3. Zeige die Folgefragen an mit der Relevanzgleichung
Q2_SQ001: strpos(string,"A")>0
Q2_SQ002: strpos(string,"B")>0
Dies war offensichtlich falsch, da ich nicht wusste, dass die gesamte Frage (als Matrix) angezeigt, bzw. nicht angezeigt wird.
Dies wird also nicht als Teilfragenrelevanz benutzt, sondern als Relevanzgleichung der gesamten Frage.
Aber im Beispiel ist es richtig.