[GastForen Programmierung/Entwicklung AppleScript rechen problem

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

rechen problem

jekyll
Beiträge gesamt: 2039

19. Nov 2017, 21:05
Beitrag # 1 von 21
Bewertung:
(9042 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Allerseits,
ich habe eine Problem mit applescript auf Yosemite (10.10.5) und auch auf al Capitan 10.11.5.
Applescript scheint nicht korrekt zu rechnen wenn es 3 stellen vor und nach dem Komma gibt.

Kann das jemand mir erklären bzw. verifizieren. kann ich das irgendwie um gehen?

Code
set px to {"9138.897755", "9138.897", "913.88977", "283.550", "913.889", "91.388977", "91.38897755"} 
set mm to 2.835
set br1 to (item 1 of px as real) / mm
set br2 to (item 2 of px as real) / mm
set br3 to (item 3 of px as real) / mm
set br4 to (item 4 of px as real) / mm
set br5 to (item 5 of px as real) / mm
set br6 to (item 6 of px as real) / mm
set br7 to (item 7 of px as real) / mm

Gruß Sándor


Hier auf der HDS, kann jeder was dazu lernen, sogar die die glauben alles (besser) zu wissen Wink
Das sollten WIR ALLE unterstützen: http://www.hilfdirselbst.ch/...m.cgi?do=membership;

Anhang:
rechnen.png (221 KB)
X

rechen problem

Hans Haesler
  
Beiträge gesamt: 5754

19. Nov 2017, 21:40
Beitrag # 2 von 21
Beitrag ID: #560817
Bewertung:
(9036 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Sándor,

die Ergebnisse sind doch alle korrekt.

Was erwartest Du denn bei den sieben Divisionen?
Jedes mal nur drei Nachkommastellen?

Gruss, Hans


als Antwort auf: [#560816]

rechen problem

jekyll
Beiträge gesamt: 2039

19. Nov 2017, 22:28
Beitrag # 3 von 21
Beitrag ID: #560819
Bewertung:
(9021 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
hier sind meine Ergebnise:

{3223.59709171076, 3223.59682539683, 322.359707231041, 1.00017636684303E+5, 3.22359435626102E+5, 32.235970723104, 32.235970917108}

Da rutscht bei mir die Kommastelle nach 2 stellen vorne

Kannst Du auch auf Bild sehen.
Gruß Sándor


Hier auf der HDS, kann jeder was dazu lernen, sogar die die glauben alles (besser) zu wissen Wink
Das sollten WIR ALLE unterstützen: http://www.hilfdirselbst.ch/...m.cgi?do=membership;


als Antwort auf: [#560817]
(Dieser Beitrag wurde von jekyll am 19. Nov 2017, 22:30 geändert)

rechen problem

Hans Haesler
  
Beiträge gesamt: 5754

19. Nov 2017, 22:42
Beitrag # 4 von 21
Beitrag ID: #560820
Bewertung:
(9018 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Sándor,

ja, Deine Ergebnisse der beiden "123 Komma 123" sind nicht wie erwartet.

Zitat Kannst Du auch auf Bild sehen.

Ein Bild ist nicht zu sehen. Vermutlich hast Du es zwar angehängt, aber nicht auf "Anhang speichern" geklickt.

Was geschieht, wenn Du das folgende Script startest?

Code
set px to {"9138.897755", "9138.897", "913.88977", "283.550", "913.889", "91.388977", "91.38897755"} 
set mm to 2.835
set br1 to ((((item 1 of px) / mm) * 1000) div 1) / 1000
set br2 to ((((item 2 of px) / mm) * 1000) div 1) / 1000
set br3 to ((((item 3 of px) / mm) * 1000) div 1) / 1000
set br4 to ((((item 4 of px) / mm) * 1000) div 1) / 1000
set br5 to ((((item 5 of px) / mm) * 1000) div 1) / 1000
set br6 to ((((item 6 of px) / mm) * 1000) div 1) / 1000
set br7 to ((((item 7 of px) / mm) * 1000) div 1) / 1000

Drei Nachkommastellen sind doch ausreichend.

Gruss, Hans


als Antwort auf: [#560819]
(Dieser Beitrag wurde von Hans Haesler am 20. Nov 2017, 07:54 geändert)

rechen problem

jekyll
Beiträge gesamt: 2039

19. Nov 2017, 23:01
Beitrag # 5 von 21
Beitrag ID: #560821
Bewertung:
(9009 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Ein Bild ist nicht zu sehen. Vermutlich hast Du es zwar angehängt, aber nicht auf "Anhang speichern" geklickt.

interessant bei mir zeigt es an.

Antwort auf: Was geschieht, wenn Du das folgende Script startest?

bekomme ich ohne as real Fehler Meldung mit as real ist die Ergebnis gleich.

Code
set px to {"9138.897755", "9138.897", "913.88977", "283.500", "913.889", "91.388977", "91.38897755"} 
set mm to 2.835
set br1 to ((((item 1 of px as real) / mm) * 1000) div 1) / 1000
set br2 to ((((item 2 of px as real) / mm) * 1000) div 1) / 1000
set br3 to ((((item 3 of px as real) / mm) * 1000) div 1) / 1000
set br4 to ((((item 4 of px as real) / mm) * 1000) div 1) / 1000
set br5 to ((((item 5 of px as real) / mm) * 1000) div 1) / 1000
set br6 to ((((item 6 of px as real) / mm) * 1000) div 1) / 1000
set br7 to ((((item 7 of px as real) / mm) * 1000) div 1) / 1000

Gruß Sándor


Hier auf der HDS, kann jeder was dazu lernen, sogar die die glauben alles (besser) zu wissen Wink
Das sollten WIR ALLE unterstützen: http://www.hilfdirselbst.ch/...m.cgi?do=membership;


als Antwort auf: [#560820]

rechen problem

jekyll
Beiträge gesamt: 2039

19. Nov 2017, 23:05
Beitrag # 6 von 21
Beitrag ID: #560822
Bewertung:
(9008 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hier sind die Bilder als Link:
http://www.download.siscosep.com/hds/rechnen.pdf
Gruß Sándor


Hier auf der HDS, kann jeder was dazu lernen, sogar die die glauben alles (besser) zu wissen Wink
Das sollten WIR ALLE unterstützen: http://www.hilfdirselbst.ch/...m.cgi?do=membership;


als Antwort auf: [#560820]

rechen problem

jekyll
Beiträge gesamt: 2039

20. Nov 2017, 00:10
Beitrag # 7 von 21
Beitrag ID: #560823
Bewertung:
(8994 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich bekomme dieser Fehler nur wenn ich das "as real" verwende.

Code
set px to {"283.500", "283.5000"} 
set mm to 2.835
set test to round (item 1 of px as real)
set test2 to round item 1 of px
set test3 to round (item 2 of px as real)
set test4 to round item 2 of px


Liefert mir die Ergebnis: test = 284, test2 = 283500, test3 = 284, test4 = 284
Merkwürdig.
Gruß Sándor


Hier auf der HDS, kann jeder was dazu lernen, sogar die die glauben alles (besser) zu wissen Wink
Das sollten WIR ALLE unterstützen: http://www.hilfdirselbst.ch/...m.cgi?do=membership;


als Antwort auf: [#560822]

rechen problem

Hans Haesler
  
Beiträge gesamt: 5754

20. Nov 2017, 07:58
Beitrag # 8 von 21
Beitrag ID: #560825
Bewertung:
(8944 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Sándor,

das Konvertieren mit as real braucht es nicht. Weil der Wert durch die Division umgewandelt wird.

Code
set px to {"9138.897755", "9138.897", "913.88977", "283.550", "913.889", "91.388977", "91.38897755"} 
set mm to 2.835

set br4 to (item 4 of px) / mm

Die Fehlermeldung kam, weil in meinem Beitrag #4 die Zeile set mm to 2.835 fehlte. Habe ich jetzt korrigiert.

Deine Versionen vom Mac OS X habe ich nicht zur Verfügung. Aber weder mit Mavericks noch mit Sierra kann ich das Problem nachvollziehen.

Falls es Dir sicherer scheint, den Wert umzuwandeln, dann hilft vielleicht eine Multiplikation mit Eins:

Code
set px to {"9138.897755", "9138.897", "913.88977", "283.550", "913.889", "91.388977", "91.38897755"} 
set mm to 2.835

set br4 to ((item 4 of px) * 1) / mm

Gruss, Hans


als Antwort auf: [#560823]

rechen problem

jekyll
Beiträge gesamt: 2039

20. Nov 2017, 08:49
Beitrag # 9 von 21
Beitrag ID: #560826
Bewertung:
(8935 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Morgen Hans,
leider geht das nur ohne ( ) sobald ich es in den ( ) lege ist meine Ergebnis falsch.

Antwort auf: Die Fehlermeldung kam, weil in meinem Beitrag #4 die Zeile set mm to 2.835 fehlte. Habe ich jetzt korrigiert.

Nein, das habe ich gemerkt :)
Applescript zickt weil das Typ nicht in real gewandelt werden kann. Siehe Bild.

Normaleweise vergesse ich die Wandlung zu Nummer bzw. mache ich es an falsche stelle :(
Ich habe es hierfür gebraucht.
Code
 set pdfGr to do shell script "cat " & quoted form of POSIX path of neueDok & " | egrep -ao '/MediaBox ?\\[ ?[0-9]+ [0-9]+ [0-9]+(\\.[0-9]+)? [0-9]+(\\.[0-9]+)?\\]' | head -1" 

set {origDelim, AppleScript's text item delimiters} to {AppleScript's text item delimiters, " "}
set breite to text item 3 of pdfGr
set breite1 to ((((round (text item 3 of pdfGr) rounding up) / mm) * 100) div 1) / 100
set hoehe to text item 4 of pdfGr
set AppleScript's text item delimiters to "]"
set hoehe1 to ((((round (text item 1 of hoehe) rounding up) / mm) * 100) div 1) / 100
set AppleScript's text item delimiters to origDelim


Habe aber mittlerweile das hier gefunden und verwendet :
Zitat set {hoehePx, breitePx} to paragraphs of (do shell script "mdls " & quoted form of POSIX path of pdfDok & "| grep -Ei 'kMDItemPage(Height|Width)' | awk '{print $3}'")


Aber nur so bekomme ich korrekte Ergebnisse mit dem man weiter rechnen kann:
Code
set breiteMm to ((((round (breitePx) rounding up) / mm) * 100) div 1) / 100 
set hoeheMm to ((((round (hoehePx) rounding up) / mm) * 100) div 1) / 100

Gruß Sándor


Hier auf der HDS, kann jeder was dazu lernen, sogar die die glauben alles (besser) zu wissen Wink
Das sollten WIR ALLE unterstützen: http://www.hilfdirselbst.ch/...m.cgi?do=membership;


als Antwort auf: [#560825]
(Dieser Beitrag wurde von jekyll am 20. Nov 2017, 08:50 geändert)

Anhang:
rechen1.png (260 KB)

rechen problem

jekyll
Beiträge gesamt: 2039

20. Nov 2017, 10:10
Beitrag # 10 von 21
Beitrag ID: #560828
Bewertung:
(8920 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
sorry hier #560822 habe ich die test und test2 vertauscht.

das muss heissen: Liefert mir die Ergebnis: test = 283500, test2 = 284, test3 = 284, test4 = 284
siehe Bild.

Kann mir jemand anders meine Problem bestätigen?
Gruß Sándor


Hier auf der HDS, kann jeder was dazu lernen, sogar die die glauben alles (besser) zu wissen Wink
Das sollten WIR ALLE unterstützen: http://www.hilfdirselbst.ch/...m.cgi?do=membership;


als Antwort auf: [#560825]
(Dieser Beitrag wurde von jekyll am 20. Nov 2017, 10:11 geändert)

Anhang:
rechnen3.png (167 KB)

rechen problem

Hans Haesler
  
Beiträge gesamt: 5754

20. Nov 2017, 11:30
Beitrag # 11 von 21
Beitrag ID: #560830
Bewertung:
(8886 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Sándor,

besteht das Problem auch, wenn Du das Testscript aus meinem Beitrag #4 ab AppleScript-Editor startest? Statt mit dem ScriptDebugger.

Gruss, Hans


als Antwort auf: [#560828]

rechen problem

jekyll
Beiträge gesamt: 2039

20. Nov 2017, 12:06
Beitrag # 12 von 21
Beitrag ID: #560832
Bewertung:
(8875 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Leider ja.
Dieser habe ich auf die Rechner von meine Frau gemacht al Captain 10.11.5 im Skript Editor.

http://www.download.siscosep.com/hds/rechnen5.pdf
Gruß Sándor


Hier auf der HDS, kann jeder was dazu lernen, sogar die die glauben alles (besser) zu wissen Wink
Das sollten WIR ALLE unterstützen: http://www.hilfdirselbst.ch/...m.cgi?do=membership;


als Antwort auf: [#560830]

rechen problem

kkauer
Beiträge gesamt: 661

20. Nov 2017, 13:53
Beitrag # 13 von 21
Beitrag ID: #560837
Bewertung:
(8858 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das Problem hängt mit den sprachspezifischen Einstellungen zusammen. Auf (d)einem deutschen System ist "." das Tausendertrennzeichen und aus z.B. "1.000" wird bei der Wandlung 1000. Du müsstest also in deinen Strings schon den passenden Dezimaltrenner "," verwenden oder einen anderen Weg/Workaround finden.


als Antwort auf: [#560832]

rechen problem

jekyll
Beiträge gesamt: 2039

20. Nov 2017, 14:15
Beitrag # 14 von 21
Beitrag ID: #560838
Bewertung:
(8851 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hey Karsten,
vielen Dank für die Erklärung!!

Weiss ich nicht ob´s in allen Fällen geht aber mit hochrunden bekomme ich für meine Zwecke einen akzeptablen Ergebnis.
Ist zwar einwenig Größe aber bei der Filmen macht es ja nix :)

Code
set {hoehePx, breitePx} to paragraphs of (do shell script "mdls " & quoted form of POSIX path of pdfDok & "| grep -Ei 'kMDItemPage(Height|Width)' | awk '{print $3}'") 
set breiteMm to ((((round (breitePx) rounding up) / mm) * 100) div 1) / 100
set hoeheMm to ((((round (hoehePx) rounding up) / mm) * 100) div 1) / 100

Gruß Sándor


Hier auf der HDS, kann jeder was dazu lernen, sogar die die glauben alles (besser) zu wissen Wink
Das sollten WIR ALLE unterstützen: http://www.hilfdirselbst.ch/...m.cgi?do=membership;


als Antwort auf: [#560837]

rechen problem

Hans Haesler
  
Beiträge gesamt: 5754

20. Nov 2017, 23:05
Beitrag # 15 von 21
Beitrag ID: #560858
Bewertung:
(8793 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Karsten,

jetzt, wo Du es sagst ... Hätte ich eigentlich wissen müssen ...

@ Sandor: Dein Dreizeiler funktioniert. Aber durch das Aufrunden sind die Werte leicht erhöht.

Code
set pdfDok to choose file 

set mm to 2.835

set {hoehePx, breitePx} to paragraphs of (do shell script "mdls " & ¬
quoted form of POSIX path of pdfDok & ¬
"| grep -Ei 'kMDItemPage(Height|Width)' | awk '{print $3}'")
set hoeheMm to ((((round (hoehePx) rounding up) / mm) * 100) div 1) / 100
set breiteMm to ((((round (breitePx) rounding up) / mm) * 100) div 1) / 100

{hoeheMm, breiteMm}

--> {280.07, 220.81}

Wenn die Punkte durch Kommas ersetzt werden, ist das Ergebnis präziser:

Code
set pdfDok to choose file 

set mm to 2.835

set {hoehePx, breitePx} to paragraphs of (do shell script "mdls " & ¬
quoted form of POSIX path of pdfDok & ¬
"| grep -Ei 'kMDItemPage(Height|Width)' | awk '{print $3}'")

set AppleScript's text item delimiters to "."
set tmpList_1 to every text item of hoehePx as list
set tmpList_2 to every text item of breitePx as list
set AppleScript's text item delimiters to ","
set hoehePx to tmpList_1 as string
set breitePx to tmpList_2 as string

set AppleScript's text item delimiters to {""}

set hoeheMm to ((((hoehePx) / mm) * 100) div 1) / 100
set breiteMm to ((((breitePx) / mm) * 100) div 1) / 100

{hoeheMm, breiteMm}

--> {279.97, 220.67}

Okay, das sind nur Zehntelsmillimeter.

Gruss, Hans


als Antwort auf: [#560838]
X
Hier Klicken

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
12.11.2019

Frankfurt
Dienstag, 12. Nov. 2019, 14.00 - 17.00 Uhr

Road Tour (Hamburg, Frankfurt, München)

Anlässlich der Switch World Tour 2019 in Deutschland möchten wir Sie als Impressed-Kunde am Vortag der Switch World Tour zu unserer kostenlosen Veranstaltung "Von der Manufaktur zur smarten Druckerei" einladen. Wir zeigen Ihnen an einem Nachmittag in lockerer Atmosphäre, wie Sie durch den Einsatz von moderner Software den händischen Aufwand in der Druckproduktion minimieren und Ihre Workflows durch Normierung und Standardisierung hochgradig automatisieren können. Die Tour findet in drei deutschen Städten statt und wartet mit einer spannenden Agenda auf. Am 25.09.2019 in Hamburg Am 12.11.2019 in Frankfurt Am 26.11.2019 in München Im Zuge der Veranstaltung werden folgende Softwares besprochen: Enfocus PitStop, Switch, PDF-Review Modul Impressed Workflow Server ColorLogic CoPrA, ZePrA Callas pdfToolbox Ultimate Impostrip

Diese Veranstaltung ist für alle Impressed-Kunden offen und somit für Sie KOSTENFREI.

Ja

Organisator: Impressed GmbH

Kontaktinformation: Detlef Grimm, E-Mailschulungen AT impressed DOT de

https://www.impressed.de/produkte.php?c=detail&prnr=1414&link=ndet&nid=101197

Von der Manufaktur zur smarten Druckerei
Veranstaltungen
12.11.2019

Bookfactory, 8617 Mönchaltorf
Dienstag, 12. Nov. 2019, 17.00 - 19.00 Uhr

Workshop

Affinity Photo positioniert sich seit mehreren Jahren als preisgünstige Alternative zum Platzhirschen Adobe Photoshop. Was die beiden Programme voneinander unterscheidet, erfahren Sie in einem Workshop mit Peter Jäger, professioneller Trainer und Ausbildner im Bereich der Bildbearbeitung.

Bookfactory-Kunden profitieren von einer vergünstigten Teilnahmegebühr von nur 50 CHF.
Zur Anmeldung schicken Sie uns bitte eine E-Mail an service@bookfactory.ch

Ja

Organisator: Bookfactory und pre2media

Workshop: Affinity Photo vs. Adobe Photoshop