Connect failed: Connection timed out

[GastForen Programmierung/Entwicklung AppleScript rechen problem

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

rechen problem

jekyll
Beiträge gesamt: 2047

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


Anhang:
rechnen.png (221 KB)
X

rechen problem

Hans Haesler
  
Beiträge gesamt: 5826

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

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


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

rechen problem

Hans Haesler
  
Beiträge gesamt: 5826

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

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



als Antwort auf: [#560820]

rechen problem

jekyll
Beiträge gesamt: 2047

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


als Antwort auf: [#560820]

rechen problem

jekyll
Beiträge gesamt: 2047

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


als Antwort auf: [#560822]

rechen problem

Hans Haesler
  
Beiträge gesamt: 5826

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

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



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: 2047

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


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: 5826

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

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


als Antwort auf: [#560830]

rechen problem

kkauer
Beiträge gesamt: 661

20. Nov 2017, 13:53
Beitrag # 13 von 21
Beitrag ID: #560837
Bewertung:
(11565 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: 2047

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



als Antwort auf: [#560837]

rechen problem

Hans Haesler
  
Beiträge gesamt: 5826

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