08-16-2007 08:13 AM
Hallo,
hier ist eine kleine Sequenz, die beim Ausführen kein Ende findet.
Der Kanal „test“ ist nur 100 Werte von 1 bis 50 groß.
Berechnet werden sollen alle Werte, die über 45 sind.
Das Ergebnis soll in einem neuen Kanal „neg_U_Sprung“ in der ersten Zeile gespeichert werden.
Call ChnAlloc("neg_U_Sprung")
dim negSprung, anzahlSprung
negSprung=1: anzahlSprung=0
do
negSprung = chnfind("ch(""[1]/test"")>45", negSprung)
if negSprung >0 then
anzahlSprung = anzahlSprung +1
end if
loop until negSprung >= cl("[1]/test")
chnval(1,"neg_U_Sprung") = anzahlSprung
was mache ich falsch?
Gruß,
a6a
08-16-2007 08:20 AM
08-16-2007 11:34 AM
ich habe es mehr mals gelesen.
leider bring es mich nicht weiter.
ich sehe keinen logik fehler hier.
08-16-2007 12:38 PM
Call ChnAlloc("neg_U_Sprung")
dim negSprung, anzahlSprung
negSprung=0: anzahlSprung=0
do
negSprung = chnfind("ch(""[1]/test"")>45", negSprung+1)
if negSprung >0 then
anzahlSprung = anzahlSprung +1
end if
loop until (negSprung=0) or (negSprung >= cl("[1]/test"))
chnval(1,"neg_U_Sprung") = anzahlSprung
Matthias Alleweldt Project Engineer / Projektingenieur | Twigeater? |
08-17-2007 02:19 AM
08-17-2007 04:50 AM
Danke Matthias.
Wie verhält sich chnfind,
wenn in einem Kanal überwiegend novalies sind und
alle anderen Werte unterliegen der Bedingung?
D.h, mein Kanal besteht aus Novalues und alle andere Werte, die
im Kanal vorhanden sind, werden von chnfind gefunden, da sie der
Bedingung entsprechen.
Habe den Skript laufen lassen und Diadem gibt mir als anzahlSprung
die Länge des Kanals („test“).
Offensichtlich berechnet er die Novalues mit.
Ist es möglich?
LG,
a6a
08-17-2007 05:12 AM
negSprung = chnfind("not IsNull(ch(""[1]/test""))", negSprung+1)
ändern und nochmal testen.Matthias Alleweldt Project Engineer / Projektingenieur | Twigeater? |