Send / Copy Problme

  • Hallo zusammen,

    ich sehe gerade den Wald vor Bäumen nicht und bräuchte mal einen Input von außen.

    Folgendes Problem:

    Ich schreibe in ein Inputfeld mittels Send() eine variable. Die Variable ist eine Zahl. Dann markiere ich alles im Inputfeld, kopiere den Inhalt und vergleiche es mit der Variable um sicherzustellen, dass der Input richtig war. Klappt auch soweit ganz gut. Das Problem ist das die Variable <> dem Kopierten wert erkannt wird obwohl sie augenscheinlich gleich sind.

    Bsp:
    $a = 351201.04
    $b = Clipget()

    $a <> $b / 351201.04 <> 351201.04

    rechne ich beide Werte *1 erhalte ich das selbe

    (1*$a)<>(1*$b) / 351201.04 <> 351201.04

    addiere ich auf beide Werte +1 funktioniert die Addition, die Ergebnisse werden aber immer noch als ungleich erkannt

    (1+$a)<>(1+$b) / 351202.04 <> 351202.04


    Hat jemand eine Idee?

  • Schreib am besten ein kurzen Beispielscript und stell es hier ein, mit dem wir den Fehler reproduzieren können.

    Entweder beim Testen findest Du den Fehler selbst (ist oft der Fall) oder jemand kann die an Hand Deines Beispiels den Fehler lokalisieren.

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • Versuch mal mit

    [autoit]

    number($variable)

    [/autoit]

    zu vergleichen...
    Sonst kann es sein, das er einen string vergleicht.


    Edit: Sehe gerade das wurde ja schon geschrieben... habe ich übersehen

  • Das wars!

    Also number($variable) hat den Fehler behoben. Was mich etwas verwirrt ist dass ich bei beide Werte auch mit isnumber() überprüft habe und für beide werte eine 1 zurückgeliefert bekommen habe.

    Denoch vielen Dank ihr habt mir sehr geholfen!! :thumbup:

  • Ich hatte vor einigen Tagen ein ähnliches Problem nur mit der Übertragung von Zahlen im Stringformat in Tcp-IP. Dort habe ich 2 Zahlen aneinandergereiht, mit einem Hochstrich als Trenner gesendet. Aber diese Daten wurden nicht als, das gewünschte Stringformat, übertragen und kamen als Binärdaten an den Client an.
    Ich habe Stundenlang den Fehler gesucht und als ich endlich fündig wurde, hing ich einfach ein Chr(255) an. So musste ich im Client nur den letzten Char entfernen, und es wurde endlich alles so gesendet und empfangen wie ich es auch wollte.

    Der Grund für dieses Verhalten in AU3 ist der Variant-Datentyp! Er ist Fluch und Segen zugleich :D
    Bei dir war es das nicht erkannte Zahlenformat und bei mir der String.

    Solche Problemchen werden noch öfters auf dich zukommen, wenn du dir unsicher bist solltest du dir angewöhnen eine Variable direkt in das Format umzuwandeln welches du erwartest.

    Grüsse!