Dynamischen "Visable Text" (mit Platzhaltern?) abfangen?

  • Hallo zusammen,

    ich habe ein Fenster mit festem Title und dynamischen Visable Text im Body.
    Der Text sieht ungefähr so aus: "21.36% von Vorgang 01 ist abgeschlossen.", wobei sich die Ziffern verändern.
    Ich möchte zu bestimmten Prozentsätzen eine Aktion ausführen und überwache in einer Schleife mit Winexists den Text.

    Das Problem: Die Nach-Komma-Stellen des Prozentwertes sind willkürlich, d.h. das Programm springt z.B. von 21.36% auf 22.19%.
    Ich benötige aber auch den restlichen Text, da es auch noch "Vorgang 02" und "Vorgang 03" usw. gibt.

    Gibt es eine Möglichkeit, für ".36%" einen Platzhalter zu setzen? Also z.B.: "21* von Vorgang 01 ist abgeschlossen." ? (Ich weiß, * funktioniert so leider nicht)

    Wäre dankbar für Eure Hilfe. Ich habe hierzu im Netz leider nichts gefunden.

    VG
    Hansi

  • Hi,

    Sinnvoll wäre es zu sehen wie du bisher versucht hast das Problem zu lösen.

    Die Nach-Komma-Stellen des Prozentwertes sind willkürlich, d.h. das Programm springt z.B. von 21.36% auf 22.19%.

    Hierbei sollte man besser eine Methode wählen die auch funktioniert wenn das Programm den Prozentwert ganz überspringt.
    Möglich wäre es wenn man den Wert rausfiltert und prüft ob er den Schwellwert überschritten hat.

    Hier mal eine allgemeine Möglichkeit dafür:


    Zum rausfiltern der Werte kann man Stringregexp oder _StringBetween verwenden, hier mal ein Beispiel mit RegExp: (gibt mindestens ein Tutorial dazu hier im Forum)

    AutoIt
    #include<Array.au3>
    $sVisibleText = '21.36% von Vorgang 01 ist abgeschlossen.'
    $aData = StringRegExp($sVisibleText,"([0-9\.]*)% von (.*) ist abgeschlossen.",3)
    MsgBox(0,"Title",'Prozent: ' & $aData[0] & '%' & @CRLF & 'Vorgang: "' & $aData[1] & '"' )

    _StringBetween ist etwas einfacher und wäre am Anfang warscheinlich die bessere Methode.

    mfg


    Zeitriss