Hi @ all
bin schon ewig am tüfteln .. bekomm's aber einfach nicht hin.
mein Zeil : eine Toleranzbereichs Abfrage.
d.h. ich habe 3 Werte , $min , $messwert, $max und will am ende einen gut ( 1 ) oder schlecht (0) Ergebniss.
z.B.
$min / $messwert / $max / = $ergebniss
1 / 2 / 3 / = 1
-1 / 2 / 3 / = 1
-3 / -2 / -1 / = 1
-2 / -1 / 3 / = 1
.. so sollte es sein. ist ja auch logisch ..
alle anderen Messungen oder halt Möglichkeiten, sollten ja mit 0 zum Ergebnis führen.
bekomme es aber absolut nicht hin.
Problem macht mir das negative Vorzeichen.
hier meine Ansätze: aber nicht wirklich brauch bahr....
[autoit]
While 1
$min = InputBox("min", "min toleranz eingeben")
$messwert = InputBox("messwert", "messwert eingeben")
$max = InputBox("max", "maxtoleranz eingeben")
MsgBox(0, "ergebniss", _toleranzcheck($min, $messwert, $max))
[/autoit][autoit][/autoit][autoit]WEnd
[/autoit][autoit][/autoit][autoit][/autoit][autoit]Func _toleranzcheck($min, $messwert, $max)
[/autoit][autoit][/autoit][autoit]$messwert = StringReplace($messwert, "+", "")
$max = StringReplace($max, "+", "")
$min = StringReplace($min, "+", "")
; werte sind negativ oder normal .. aber alle ohne + zeichen
[/autoit][autoit][/autoit][autoit];if StringInStr($min, "-") = "1" Then Return 0
;if StringInStr($messwert, "-") = "1" Then Return 0
;if StringInStr($max, "-") = "1" Then Return 0
If $min < $messwert And $messwert < $max Then
Return "1"
Else
Return "0"
EndIf
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]EndFunc ;==>_toleranzcheck
[/autoit][autoit][/autoit][autoit]#cs
Func _toleranzcheck($messwert, $max, $min)
MsgBox(0,"übergabe",$min & " " &$messwert&" "& $max)
[/autoit][autoit][/autoit][autoit]$messwert = StringReplace($messwert, "+", "")
$max = StringReplace($max, "+", "")
$min = StringReplace($min, "+", "")
MsgBox(0,"nach umwandlung in reele zahlen",$min & " " &$messwert&" "& $max)
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]$x = _Max(25, 10) ; Gibt 25 zurück
[/autoit][autoit][/autoit][autoit][/autoit][autoit]$ergebniss_max= StringCompare($max, $messwert)
$ergebniss_min= StringCompare($messwert,$min)
Return $ergebniss_max &" "& $ergebniss_min
[/autoit][autoit][/autoit][autoit]EndFunc
[/autoit][autoit][/autoit][autoit][/autoit][autoit]#ce
[/autoit][autoit][/autoit][autoit]#cs
[/autoit][autoit][/autoit][autoit]Func _toleranzcheck($messwert, $max, $min)
[/autoit][autoit][/autoit][autoit]$messwert_nativ = StringReplace($messwert, "+", "")
$messwert_nativ = StringReplace($messwert, "-", "")
If StringInStr($messwert, "+") = "1" Then
;MsgBox(0,"","wert = positiv")
If StringInStr($max, "+") = "1" And StringInStr($min, "+") = "1" Then
$max = StringReplace($max, "+", "")
$min = StringReplace($min, "+", "")
If $messwert_nativ > $min And $messwert_nativ < $max Then
;MsgBox(0,"","und im tolleranz bereich")
Return "pg"
EndIf
ElseIf StringInStr($max, "+") = "1" And StringInStr($min, "-") = "1" Then
$max = StringReplace($max, "+", "")
$min = StringReplace($min, "-", "")
If $messwert_nativ > $min And $messwert_nativ < $max Then
;MsgBox(0,"","und im tolleranz bereich")
Return "pg"
EndIf
ElseIf StringInStr($messwert, "-") = "1" Then
;MsgBox(0,"","wert = negativ" & StringReplace($parameter[2], "-", ""))
If StringReplace($messwert, "-", "") > "0.0" And StringReplace($messwert, "-", "") < $min Then
;MsgBox(0,"","und im tolleranz bereich")
Return "ng"
EndIf
Else
;MsgBox(0,"","wert = error ")
Return "error"
EndIf
EndIf
EndFunc ;==>_toleranzcheck
#ce
[/autoit]