Page 1 of 2

Im Skript mit Text rechnen

Posted: 10 Jun 2016 12:08
by MiDaS
Hallo ich wollte gerne mit gefundenen Werten weiter rechnen und Vergleichen.



g = getText(1194, 291);
// g ergibt dann z. B. 123.345pt Zahl kann auch drei oder mehrstellig sein. Endet aber immer auf pt
sleep(2000);
c = getText(1291, 650);
// c ist eine weitere Zahl auch mit pt am Ende. Z. B. 144.445pt
sleep(2000);
Variable b soll dann g+20% sein.
Wie bekomme ich das Skript dazu
1. Mit der Zahl ohne pt weiter zu machen

Und
2. Wie rechne ich die 20% dazu?
Wäre dann
b=g+g/5
Korrekt oder muss etwas in klammer gesetzt werden.

Der Vergleich mit Kondition
b>c Funktioniert soweit auch mit pt. Nur eben nicht wenn ich rechnen möchte.

Vielen Dank für eure Unterstützung
Gruß Michael

Re: Im Skript mit Text rechnen

Posted: 10 Jun 2016 13:00
by Bushmills
um das "pt" wegzubekommen, gibts mehrere Wege. Z.B. könnte man einfach die letzten beiden Zeichen abschneiden, oder alle Kleinbuchstaben im String entfernen. Das ist, was ich hier im Beispiel mache:

num = toNumber(replaceAll(g, "[a-z]", ""));

g ist dein "123.345pt" string. num ist der numerische Wert von 123.345, mit dem du auch normal rechnen kannst.
Zum 20% dazurechnen kannst du auch mit 1.2 multiplizieren, also etwa so:

ergebnis = 1.2 * toNumber(replaceAll(g, "[a-z]", ""));
b>c Funktioniert soweit auch mit pt.
Nee, tut's nicht. Es wird nämlich Text mit Text verglichen, statt Zahl mit Zahl, mit der Folge, daß z.b. 98 größer ist als 102 (weil erstes Zeichen, 9, ein höherer ASCII ist als 1)

Re: Im Skript mit Text rechnen

Posted: 10 Jun 2016 13:19
by MiDaS
Danke für die schnelle Antwort.
Mal sehen, ob ich das umsetzen kann ;-)

Re: Im Skript mit Text rechnen

Posted: 10 Jun 2016 13:27
by Bushmills
Ist ja eigentlich nur noch bissel Eintippen.

Re: Im Skript mit Text rechnen

Posted: 10 Jun 2016 13:32
by MiDaS
Sah erstmal gut aus.

Kann ich
Expression/Kondition
b>c
Auch gleich mit
1.2*b>c
Kombinieren.
Habe es ja dann die Variable schon als Zahl umgewandelt
Irgendwie hat er das aber so einfach nicht gewollt :-(

Re: Im Skript mit Text rechnen

Posted: 10 Jun 2016 13:38
by Bushmills
sollte aber gehen.

Re: Im Skript mit Text rechnen

Posted: 10 Jun 2016 13:44
by MiDaS
Sorry
Muss nochmal nachfragen.
Ist nach
num = toNumber(replaceAll(g, "[a-z]", ""));
G eine Zahl. Oder muss ist das jetzt immer wieder verwenden, wenn ich g nutzen will?

Klappt noch nicht so richtig, was ist möchte.
Also g soll Zahl sein.
Dann soll
g*1.2>c
Als Kondition genutzt werden

Danke dir

Re: Im Skript mit Text rechnen

Posted: 10 Jun 2016 13:49
by Bushmills
g ist dies hier:
g = getText(1194, 291);
// g ergibt dann z. B. 123.345pt Zahl kann auch drei oder mehrstellig sein. Endet aber immer auf pt
Die kann auch ganz anders heißen, nämlich so, wie du die nennen willst. Ich hab lediglich den von dir verwendeten Namen weiterbenutzt. Und in dem Beispiel von dir ist g noch keine Zahl.
Hab ich in meiner ersten Antwort ja auch so gesagt:
g ist dein "123.345pt" string. num ist der numerische Wert von 123.345, mit dem du auch normal rechnen kannst.

Re: Im Skript mit Text rechnen

Posted: 10 Jun 2016 13:54
by MiDaS
ch.gridvision.ppam.androidautomagic.simplelang.a.d: can not apply operation * to values '1.2' and '379.405pt' (Expression: 1.2*g>c[line 0])

Kommt als Fehler. Also wurde das pt nicht entfernt.
g = getText(1194, 291);
sleep(200);
c = getText(1291, 650);
sleep(200);
num = toNumber(replaceAll(g, "[a-z]", ""));
num = toNumber(replaceAll(c, "[a-z]", ""));

Das ist das Skript

1.2*g>c
Und das die Kondition

Re: Im Skript mit Text rechnen

Posted: 10 Jun 2016 13:59
by Bushmills
Liest du denn meine Antworten nicht? Probier das einfach mal, dann brauch ich so Sachen wie
Und in dem Beispiel von dir ist g noch keine Zahl.
und
g ist dein "123.345pt" string. num ist der numerische Wert von 123.345, mit dem du auch normal rechnen kannst.
nicht mehrmals zu schreiben.