hilfdirselbst.ch
Facebook Twitter gamper-media
Mac OS X enthält verschiedene integrierte Werkzeuge und Technologien, mit denen sich gängige Aufgaben schnell und einfach automatisieren lassen.
« « 1 2 » »  
jekyll p
Beiträge: 2036
19. Nov 2017, 21:05
Beitrag #1 von 21
Bewertung:
(6334 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

rechen problem


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;
Top

Anhang:
rechnen.png (221 KB)
 
X
Hans Haesler  M  p
Beiträge: 5580
19. Nov 2017, 21:40
Beitrag #2 von 21
Beitrag ID: #560817
Bewertung:
(6328 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

rechen problem


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] Top
 
jekyll p
Beiträge: 2036
19. Nov 2017, 22:28
Beitrag #3 von 21
Beitrag ID: #560819
Bewertung:
(6313 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

rechen problem


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)
Top
 
Hans Haesler  M  p
Beiträge: 5580
19. Nov 2017, 22:42
Beitrag #4 von 21
Beitrag ID: #560820
Bewertung:
(6310 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

rechen problem


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)
Top
 
jekyll p
Beiträge: 2036
19. Nov 2017, 23:01
Beitrag #5 von 21
Beitrag ID: #560821
Bewertung:
(6301 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

rechen problem


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] Top
 
jekyll p
Beiträge: 2036
19. Nov 2017, 23:05
Beitrag #6 von 21
Beitrag ID: #560822
Bewertung:
(6300 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

rechen problem


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] Top
 
jekyll p
Beiträge: 2036
20. Nov 2017, 00:10
Beitrag #7 von 21
Beitrag ID: #560823
Bewertung:
(6286 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

rechen problem


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] Top
 
Hans Haesler  M  p
Beiträge: 5580
20. Nov 2017, 07:58
Beitrag #8 von 21
Beitrag ID: #560825
Bewertung:
(6236 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

rechen problem


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] Top
 
jekyll p
Beiträge: 2036
20. Nov 2017, 08:49
Beitrag #9 von 21
Beitrag ID: #560826
Bewertung:
(6227 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

rechen problem


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)
Top

Anhang:
rechen1.png (260 KB)
 
jekyll p
Beiträge: 2036
20. Nov 2017, 10:10
Beitrag #10 von 21
Beitrag ID: #560828
Bewertung:
(6212 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

rechen problem


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)
Top

Anhang:
 
Hans Haesler  M  p
Beiträge: 5580
20. Nov 2017, 11:30
Beitrag #11 von 21
Beitrag ID: #560830
Bewertung:
(6178 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

rechen problem


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] Top
 
jekyll p
Beiträge: 2036
20. Nov 2017, 12:06
Beitrag #12 von 21
Beitrag ID: #560832
Bewertung:
(6167 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

rechen problem


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] Top
 
kkauer
Beiträge: 661
20. Nov 2017, 13:53
Beitrag #13 von 21
Beitrag ID: #560837
Bewertung:
(6150 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

rechen problem


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] Top
 
jekyll p
Beiträge: 2036
20. Nov 2017, 14:15
Beitrag #14 von 21
Beitrag ID: #560838
Bewertung:
(6143 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

rechen problem


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] Top
 
Hans Haesler  M  p
Beiträge: 5580
20. Nov 2017, 23:05
Beitrag #15 von 21
Beitrag ID: #560858
Bewertung:
(6085 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

rechen problem


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] Top
 
« « 1 2 » »  
X