INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.




Unsere Partner:

DIAdem-Forum.de Partner

DIAdem-Forum.de Partner






Stellenangebote:
Programmierer/in Bereich SPS und Roboter-Steuerungen
Bühl

Betriebswirtin / Betriebswirt
Bonn

Inbetriebnehmer (m/w) für Visualisierungssysteme
Bietigheim-Bissingen

Big Data Scientist / Analyst (m/w) Messdatenmanagement
Ingolstadt

Projektmanager Visualisierung (m/w)
München, Fulda





.
 
Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5

IIf Fehlermeldung
18.02.2016, 09:27,
#1
DIAdem-Version: 2015
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: -
IIf Fehlermeldung

Hallo zusammen,

ich hab da mal wieder eine Frage...

Ich möchte mit der Funktion "IIf" Werte in einem Kanal durch den Wert 1 ersetzen, wenn diese in einem bestimmten Bereich liegen (60<x<=90)

Dabei tritt bei mir immer wieder ein Syntaxfehler auf.

Die Funktion sieht bei mir wie folgt aus:

Call Calculate("Ch(""rural"")=IIf( Ch(""Gps"")<60 And =>90,Ch(""rural""),1")

Kann mir einer sagen wo mein Fehler liegt?

Viele Grüße Criss

Antworten
18.02.2016, 12:26,
#2
DIAdem-Version: 2014SP1, 2015SP2 und DIAdem 2017 / dabei seit DIA/DAGO 2
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 1995
RE: IIf Fehlermeldung

Hallo Criss,

das sollte klappen:

Call Calculate("Ch(""rural"")=IIf( (Ch(""Gps"")<60) or (Ch(""Gps"")>90),Ch(""rural""),1)")

Gruß
Voyager

Antworten
18.02.2016, 12:43,
#3
DIAdem-Version: 2015
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: -
RE: IIf Fehlermeldung

Hallo Voyager,

Vielen Dank!! klappt super!
Jetzt komme ich endlich wieder voran.

Viele Grüße

Criss

Antworten
22.02.2016, 10:24, (Dieser Beitrag wurde zuletzt bearbeitet: 22.02.2016, 10:29 von Criss.)
#4
DIAdem-Version: 2015
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: -
RE: IIf Fehlermeldung

Hallo zusammen,

ich hab nochmal eine Frage zu der IIf-Anwendung. Mein Skript sieht wie folgt aus:

Dim j, k, l, m
j=ChnFind("Ch(""vapos motorway %"")<=0.95",1)
k=ChnFindReverse("Ch(""vapos motorway %"")=>0.95",GlobChnLength)
l=ChnFind("Ch(""vapos motorway %"")<=0.95",1)
m=ChnFindReverse("Ch(""vapos motorway %"")=>0.95",GlobChnLength)
ChD(1,52)=ChD(j,51)
ChD(1,53)=ChD(k,51)
ChD(1,54)=ChD(l,50)
ChD(1,55)=ChD(m,50)
Call Calculate("Ch(""[1]/vapos motorway95"")=IIf((ChD(1,52)=0.95) And (ChD(1,53)=0.95),ChD(1,55),Ch(""[1]/interpol motorway 3"")+((Ch(""[1]/interpol motorway 4"")-Ch(""[1]/interpol motorway 3""))/(Ch(""[1]/interpol motorway 2"")-Ch(""[1]/interpol motorway 1""))*(0.95-Ch(""[1]/interpol motorway 1""))))")

Ich filtere damit die Werte, die am nächsten an 0.95 dran liegen heraus und interpoliere dann auf 0.95 um den dazugehörigen Wert zu ermitteln.
Nun ist natürlich bei der Auswertung der Daten genau der Zustand eingetreten, dass ChD(1,52) und ChD(1,53) =0.95 sind. Anstatt mir dann aber den zugehörigen Wert, was ChD(1,55) entsprechen würde, auszugeben wird der Wert auf NoValue gesetzt.
Kann mir jemand sagen wo mein Fehler im Code steckt?

Schonmal Vielen Dank im voraus!!

Viele Grüße Criss

Antworten
23.02.2016, 09:03,
#5
DIAdem-Version: 2014SP1, 2015SP2 und DIAdem 2017 / dabei seit DIA/DAGO 2
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 1995
RE: IIf Fehlermeldung

Hallo Criss,

auf die Schnelle überblicke ich den Hintergrund des Scriptes nicht.
Generell ist eine Abfrage auf Gleichheit bei Float-Werten immer kritisch.
Es gibt folgende Möglichkeiten:
- Abfrage auf ein Intervall
- Gerundete Abfrage auf eine bestimmte Anzahl Nachkommastellen
- Verwendung der Funktion "PNo" falls der Wert nur einmal im Kanal vorkommt

Gruß Voyager

Antworten
24.02.2016, 08:35, (Dieser Beitrag wurde zuletzt bearbeitet: 24.02.2016, 08:36 von Criss.)
#6
DIAdem-Version: 2015
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: -
RE: IIf Fehlermeldung

Hallo Voyager,

erstmal wieder vielen Dank für deine Hilfe!

Ich hab das Problem jetzt mit einem zusätzlichen Kanal gelöst. Sieht zwar nicht unbedingt schön aus, ist dafür aber verdammt selten!!! Wink

Viele Grüße Criss

Antworten
23.05.2016, 09:18,
#7
DIAdem-Version: 2014 SP1
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: -
RE: IIf Fehlermeldung

Ich hätte zu diesem Thema auch noch eine Frage.

Was muss ich denn für die FalseValue eingeben, wenn ich den Wert löschen will? Bisher hatte ich immer NoValue drin und hab im Nachhinein die Novalues entfernt. Also da, wo im Originalpost die 1 steht.

Liebe Grüße, Flo

Antworten
09.06.2016, 15:14,
#8
DIAdem-Version: 2014SP1, 2015SP2 und DIAdem 2017 / dabei seit DIA/DAGO 2
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 1995
RE: IIf Fehlermeldung

Hallo Flo,

direktes löschen wäre kritisch, da unterschiedliche Kanallängen entstehen.
Da ist der Weg über NoValues wesentlich sauberer, da dann auch ganze Zeilen einer Kanalgruppe entfernt werden können.

Gruß Voyager

Antworten


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Chnsmooth bricht ab mit Fehlermeldung "Kanalmenge kann nicht erzeugt werden" AjM 1 3.505 07.04.2014, 08:25
Letzter Beitrag: Carpe_DIAdem
  Fehlermeldung ')' erwartet masto 1 3.737 18.09.2012, 07:45
Letzter Beitrag: Bruno

Gehe zu: