[GastForen Programmierung/Entwicklung AppleScript rechen problem

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

rechen problem

jekyll
Beiträge gesamt: 2038

19. Nov 2017, 21:05
Beitrag # 1 von 21
Bewertung:
(7441 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: 5606

19. Nov 2017, 21:40
Beitrag # 2 von 21
Beitrag ID: #560817
Bewertung:
(7435 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: 2038

19. Nov 2017, 22:28
Beitrag # 3 von 21
Beitrag ID: #560819
Bewertung:
(7420 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: 5606

19. Nov 2017, 22:42
Beitrag # 4 von 21
Beitrag ID: #560820
Bewertung:
(7417 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: 2038

19. Nov 2017, 23:01
Beitrag # 5 von 21
Beitrag ID: #560821
Bewertung:
(7408 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: 2038

19. Nov 2017, 23:05
Beitrag # 6 von 21
Beitrag ID: #560822
Bewertung:
(7407 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: 2038

20. Nov 2017, 00:10
Beitrag # 7 von 21
Beitrag ID: #560823
Bewertung:
(7393 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: 5606

20. Nov 2017, 07:58
Beitrag # 8 von 21
Beitrag ID: #560825
Bewertung:
(7343 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: 2038

20. Nov 2017, 08:49
Beitrag # 9 von 21
Beitrag ID: #560826
Bewertung:
(7334 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: 2038

20. Nov 2017, 10:10
Beitrag # 10 von 21
Beitrag ID: #560828
Bewertung:
(7319 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: 5606

20. Nov 2017, 11:30
Beitrag # 11 von 21
Beitrag ID: #560830
Bewertung:
(7285 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: 2038

20. Nov 2017, 12:06
Beitrag # 12 von 21
Beitrag ID: #560832
Bewertung:
(7274 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:
(7257 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: 2038

20. Nov 2017, 14:15
Beitrag # 14 von 21
Beitrag ID: #560838
Bewertung:
(7250 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: 5606

20. Nov 2017, 23:05
Beitrag # 15 von 21
Beitrag ID: #560858
Bewertung:
(7192 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

Veranstaltungen

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen. pdf-icon Hier eine kleine Anleitung.

Veranstaltungen
26.09.2018

Hochschuloe der Medien, Stuttgart
Mittwoch, 26. Sept. 2018, 19.00 - 21.00 Uhr

Vertrag

Nur auf den ersten Blick scheint dieses Thema exotisch. Aber eine neue EU-Richtlinie und deren Auswirkungen auf deutsche Gesetze werden dieses Thema auch für Publisher interessant machen. Die EU-Richtlinie "2102 zu Barrierefreiheit" besagt folgendes: Ab dem 23. September 2018 müssen alle öffentlichen Stellen ihre neuen (Office- oder PDF-) Dokumente grundsätzlich barrierefrei veröffentlichen. Im Juni wurde der Gesetzentwurf zur Umsetzung dieser Richtlinie im deutschen Bundestag vom "Ausschuss für Arbeit und Soziales" (19/2728) angenommen. Es wird also ernst für "öffentliche Stellen" und damit auch für deren Dienstleister, die mit der Umsetzung beauftragt werden. Die Richtlinie gilt nämlich nicht nur für Bundes- und Landesbehörden, sondern auch für Verbände, die im Allgemeininteresse liegende Aufgaben erfüllen. Das wären somit auch Gerichte, Polizeistellen, Krankenhäuser, Universitäten, Bibliotheken und einige mehr. Weitere Informationen findest Du hier, hier und hier. Wenn also oben genannte Auftraggeber zu Deinen Kunden zählen, solltest Du Dich vorbereiten. Und da es neben Websites auch um alle downloadbaren Dateien geht sind eben auch PDFs zukünftig barrierefrei zu erstellen. Arbeitet man in InDesign, können dort einige Vorbereitungen getroffen werden. Klaas Posselt ist der ausgewiesene Spezialist im deutschsprachigen Raum für alle Fragen rund um das Thema. Deshalb freuen wir uns, dass er uns in einem Vortrag die Grundlagen dazu vermitteln wird. Wir setzen voraus, dass Du den Umgang mit InDesign gewohnt bist, die Gründe und Vorteile von der Nutzung von Formaten kennst und weißt, wie man lange Dokumente „richtig“ aufbaut. Der Vortrag setzt bewusst DANACH ein. Inhalt des Vortrages ist der Hintergrund von „Barrierefreiheit“ und Möglichkeiten und Grenzen innerhalb von InDesign. Es wird erklärt, welche Bedeutung das kostenpflichtige PlugIn MadeToTag hat und warum und für was man es braucht. Ziel ist es den Rahmen aufzuzeigen, in dem sich das Thema „Barrierefreiheit“ in InDesign abspielt. Du weißt hinterher, wo die „Baustellen“ sind, wo Du weitergehende Infos bekommst und welchen Weg Du einschlagen musst. Am nächsten Tag veranstalten wir zwei Bootcamps, die das Thema praktisch vertiefen. "IDUGS Bootcamp #2" und "IDUGS Bootcamp #3" Klaas Posselt ist studierter Dipl.-Ing. für Druck- und Medientechnik und kam über verschiedene Anfragen zum Thema barrierefreie PDF Dokumente. Seit über 10 Jahren arbeitet er in den Bereichen Medientechnik und Publishing zwischen Medienherstellern, Druckermaschinen und digitalen Ausgabekanälen. Er schult, begleitet und unterstützt Kunden bei der Einführung und Optimierung von Publikationsprozessen und auf dem Weg zu neuen digitalen Ausgabekanälen — egal ob E-Books, barrierefreie PDFs oder Webplattformen. Als Chairman des PDF/UA Competence Center der PDF Association beteiligt er sich an der Weiterentwicklung und Verbreitung des Standards PDF/UA für barrierefreie PDF Dokumente. Diese Veranstaltung kommt nur zu Stande durch die freundliche Unterstützung von "Six Offene Systeme GmbH" -- Enterprise-Content-Management-System und Media-Asset-Management-System.

Nein

Organisator: IDUG Stuttgart

Kontaktinformation: Christoph Steffens, E-Mailchristoph.steffens AT gmail DOT com

https://idug47.eventbrite.de

Veranstaltungen
27.09.2018

Screen IT, Uster
Donnerstag, 27. Sept. 2018, 17.30 - 20.00 Uhr

Infoveranstaltung

Das Angebot an Publishing-Software ist gross. Deshalb empfiehlt sich eine externe Beratung durch unabhängige Software-Experten aus der jeweiligen Branche. Nicht immer muss es eine teure Mietlösung sein, die nach Beendigung der Mietdauer einem nicht einmal gehört. Es gibt sehr gute und auch in der Qualität ausreichende Alternativen, ja sogar kostenlose Freeware. Lassen Sie sich an diesem Abend einmal vor Augen führen, was diese Programme können und wie viel sie kosten.

Ja

Organisator: Screen IT und pre2media

Kontaktinformation: Peter Jäger, E-Mailinfo AT pre2media DOT ch

https://www.pre2media.ch/-1/de/infoanlass/

Hier Klicken