Wie ist das möglich?
obwohl $localPosX kleiner als $PosMaxX ist ist, wird "True" ausgegeben.
Wie ist das möglich?
obwohl $localPosX kleiner als $PosMaxX ist ist, wird "True" ausgegeben.
Bei mir nicht :
Local $LocalPosX = 65, $PosMaxX = 533
ConsoleWrite(($LocalPosX >= $PosMaxX) & @CRLF)
If $LocalPosX >= $PosMaxX Then
ConsoleWrite("LocalPosX:" & $LocalPosX & " GROESSER/GLEICH PosMaxX:" & $PosMaxX & @CRLF)
Else
ConsoleWrite("LocalPosX:" & $LocalPosX & " KLEINER PosMaxX:" & $PosMaxX & @CRLF)
EndIf
Poste nächstes Mal bitte ein lauffähiges Miniskript und verwende das Icon </> (Code einfügen)
Alles was Musashi sagte und:
Ob der Vergleich so richtig ist können wir anhand des Schnipsel gar nicht sagen, da wir nichts über den Datentyp der beiden Variablen wissen.
Wenn $LocalPosX und $PosMaxX numerische Datentypen wie Integer oder Float sind, dann würde False herauskommen, da 65 nun einmal kleiner ist als 533.
Wenn diese jedoch vom Datentyp String sind, dann ist True als Ergebnis korrekt, da Zeichenketten zeichenweise verglichen werden und "6" einen höheren Character-Code hat als "5".
Wtf, danke, habs überprüft und beide sind Type:String. Wusste nicht, dass AutoIt so Funktioniert, danke euch
Ggf. diese einfach per Number($String) umwandeln, wenn du es für die Überprüfung brauchst.
Wtf, danke, habs überprüft und beide sind Type:String. Wusste nicht, dass AutoIt so Funktioniert, danke euch
Hört sich eher an als wäre das grundsätzlich fehlendes Programmierverständnis. Normalerweise musst du ggf. vorher definieren welcher Typ eine Variable ist, bevor du sie nutzen kannst. Das fällt hier ja schon mal komplett weg.
yo passt
yo passt
Zur Info :
In vielen Sprachen muss bei der Deklaration einer Variable zwingend ein Datentyp angegeben werden, z.B. var PositionX : Integer; .
In AutoIt ist dies nicht erforderlich (Variable sind intern vom Typ Variant).
Daher wird allgemein (wenn auch nicht von allen) empfohlen, den Datentyp in den Namen der Variable zu integrieren, siehe z.B. Best_coding_practices
Dies ist aber nur eine 'optische' Orientierungshilfe - AutoIt führt keine gesonderte Prüfung durch.
Local $iPositionX = "200" würde also keinen Fehler erzeugen.