Im Skript mit Text rechnen
Moderator: Martin
Im Skript mit Text rechnen
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
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
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]", ""));
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]", ""));
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)b>c Funktioniert soweit auch mit pt.
Re: Im Skript mit Text rechnen
Danke für die schnelle Antwort.
Mal sehen, ob ich das umsetzen kann
Mal sehen, ob ich das umsetzen kann

Re: Im Skript mit Text rechnen
Ist ja eigentlich nur noch bissel Eintippen.
Re: Im Skript mit Text rechnen
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
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
sollte aber gehen.
Re: Im Skript mit Text rechnen
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
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
g ist dies hier:
Hab ich in meiner ersten Antwort ja auch so gesagt:
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.g = getText(1194, 291);
// g ergibt dann z. B. 123.345pt Zahl kann auch drei oder mehrstellig sein. Endet aber immer auf pt
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
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
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
Liest du denn meine Antworten nicht? Probier das einfach mal, dann brauch ich so Sachen wie
undUnd in dem Beispiel von dir ist g noch keine Zahl.
nicht mehrmals zu schreiben.g ist dein "123.345pt" string. num ist der numerische Wert von 123.345, mit dem du auch normal rechnen kannst.