AutoIt Compiler erkennt keine Operatoren?!
-
JojoEffekt -
26. September 2022 um 00:12 -
Unerledigt
-
-
Bei mir nicht :
AutoItLocal $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.