[GastForen Programmierung/Entwicklung AppleScript Dezimalzahl von "text" nach "number" konvertieren

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

Dezimalzahl von "text" nach "number" konvertieren

Dominik Sourcé
Beiträge gesamt: 10

23. Jan 2016, 16:36
Beitrag # 1 von 21
Bewertung:
(8177 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

seit einigen Tagen quält mich folgendes Problem:

Eine Shell-Script, welches innerhalb eines AppleScripts ausgeführt wird, gibt mir als Ergebnis eine Dezimalzahl aus. Nun möchte ich mit dieser Dezimalzahl weiterrechnen. Leider komme ich aber mit dem Befehl "set ... as number" nicht weiter, da immer eine Fehlermeldung ausgegeben wird. Ich hab also beispielsweise dieses Ergebnis: "1453562710.21517" und möchte das als "number" damit ich anschließend arithmetische Befehle ausführen kann.

Weiß hier vielleicht jemand, wie man den Text erfolgreich in eine "echte" Zahl umwandelt?

Hier noch der gesamte Code:

Code
set time1 to do shell script "perl -e 'use Time::HiRes qw(time); print time'" 

set t1 to time1 * 2

Vielen Dank!
X

Dezimalzahl von "text" nach "number" konvertieren

Hans Haesler
  
Beiträge gesamt: 5826

23. Jan 2016, 18:10
Beitrag # 2 von 21
Beitrag ID: #546248
Bewertung:
(8145 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Dominik,

herzlich willkommen im AppleScript-Forum auf HilfDirSelbst! :-)

".at" = Österreich. Also ist sehr wahrscheinlich das Komma als Dezimaltrennzeichen definiert.

Der Punkt in der Textkette kann durch ein Komma ersetzt werden.
Und dann ist das Umwandeln in eine Zahl möglich.

Code
set tmpVal to "1453562710.21517" 

set AppleScript's text item delimiters to "."
set tmpList to every text item of tmpVal as list
set AppleScript's text item delimiters to ","
set tmpString to tmpList as string
set AppleScript's text item delimiters to {""}

set defVal to tmpString as number

Welche Version von Mac OS X benutzest Du?

Gruss, Hans


als Antwort auf: [#546243]

Dezimalzahl von "text" nach "number" konvertieren

Dominik Sourcé
Beiträge gesamt: 10

23. Jan 2016, 18:23
Beitrag # 3 von 21
Beitrag ID: #546250
Bewertung:
(8142 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

vielen Dank für die rasche Antwort und den Willkommensgruß! Dein Vorschlag erscheint mir mehr als logisch. Ich werde das gleich mal probieren und dir dann Feedback geben.

Ich benutze übrigens Mac OS 10.11.1.


als Antwort auf: [#546248]

Dezimalzahl von "text" nach "number" konvertieren

kkauer
Beiträge gesamt: 661

23. Jan 2016, 19:01
Beitrag # 4 von 21
Beitrag ID: #546254
Bewertung:
(8111 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Auch wenn Hans Antwort funktioniert würde ich vorschlagen, die Umwandlung (Punkt zu Komma) ebenfalls im Perl-Aufruf unterzubringen oder aber die Intervall-/Zeitberechnung direkt in AppleScript umzusetzen.
Kannst/magst du uns evtl. noch weitere Details zur Gesamtaufgabe nennen?


als Antwort auf: [#546250]

Dezimalzahl von "text" nach "number" konvertieren

Dominik Sourcé
Beiträge gesamt: 10

23. Jan 2016, 22:51
Beitrag # 5 von 21
Beitrag ID: #546260
Bewertung:
(8066 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo kkauer,

Ziel des gesamten Scripts ist es, die Dauer von gewissen Funktionen in Photoshop zu messen. Wir entwickeln gerade ein paar Aktionen bzw. Scripts für Stapelverarbeitungen, die später jede Menge Daten behandeln werden. Daher war mir die Genauigkeit von "get current date" –  also ganzen Sekunden – zu ungenau. Ich wollte zumindest eine Nachkommastelle. Das führte mich zu diesem Shell-Script.

Die Methode von Hans hat wunderbar funktioniert – vielen Dank nochmal – die Frage ist nur, ob die Umwandlung per Perl die Genauigkeit der Messung verbessern würde?

Ich bin vorerst jedoch mal glücklich, überhaupt ein funktionierendes Script zu haben.


als Antwort auf: [#546254]

Dezimalzahl von "text" nach "number" konvertieren

kkauer
Beiträge gesamt: 661

24. Jan 2016, 10:02
Beitrag # 6 von 21
Beitrag ID: #546261
Bewertung:
(7989 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich hatte dein Snippet gar nicht ausprobiert, daher gibt es evtl. sogar eine einfache "Lösung": Nutze "as number" direkt in Zeile 1
Code
set time1 to do shell script "perl -e 'use Time::HiRes qw(time); print time'" as number 

Das funktioniert hier problemlos (und unabhängig von den aktiven Zahlenformaten des Systems).


als Antwort auf: [#546260]
(Dieser Beitrag wurde von kkauer am 24. Jan 2016, 10:03 geändert)

Dezimalzahl von "text" nach "number" konvertieren

kkauer
Beiträge gesamt: 661

24. Jan 2016, 12:02
Beitrag # 7 von 21
Beitrag ID: #546262
Bewertung:
(7951 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ kkauer ] Das funktioniert hier problemlos.

Sorry für die Falschmeldung. Es gibt zwar keine Fehlermeldung, aber die Berechnung funktioniert nicht wirklich.

So könnte es aber klappen:
Code
set time1 to text of (do shell script "perl -e 'use Time::HiRes qw(time); print time'") as real 



als Antwort auf: [#546261]
(Dieser Beitrag wurde von kkauer am 24. Jan 2016, 12:29 geändert)

Dezimalzahl von "text" nach "number" konvertieren

Hans Haesler
  
Beiträge gesamt: 5826

24. Jan 2016, 13:21
Beitrag # 8 von 21
Beitrag ID: #546264
Bewertung:
(7911 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Karsten,

ich bedanke mich für Dein Eingreifen. Das hätte ich nicht hinbekommen.

@ Dominik: Meine Frage nach der Version des Systems ... Kürzlich stellte ich fest, dass unter "SnowLeopard" sowohl mit Komma als auch mit Punkt das Umwandeln gelingt.
Aber unter "Mavericks" das Zeichen jenem des Systems entsprechen muss.

Gruss, Hans


als Antwort auf: [#546262]

Dezimalzahl von "text" nach "number" konvertieren

Dominik Sourcé
Beiträge gesamt: 10

24. Jan 2016, 14:19
Beitrag # 9 von 21
Beitrag ID: #546267
Bewertung:
(7888 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

@Karsten: Dein zweiter Vorschlag funktioniert tatsächlich wunderbar. Allerdings verstehe ich nicht ganz warum. Kannst du mir vielleicht noch erklären warum, wenn man "to text of" voranstellt, anschließend in ein Zahl wandeln kann?

@Hans: Das mit Snow Leopard kann ich nachvollziehen. Dort wo ich das Snippet mit dem PerlScript gefunden habe, war nämlich niemals die Rede davon, dass man irgendetwas umwandeln müsse. Allerdings ist der Beitrag zu SnowLeopard Zeiten entstanden ...

Danke an euch beide!


als Antwort auf: [#546264]

Dezimalzahl von "text" nach "number" konvertieren

kkauer
Beiträge gesamt: 661

24. Jan 2016, 17:10
Beitrag # 10 von 21
Beitrag ID: #546274
Bewertung:
(7857 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Dominik Sourcé ] @Karsten: Dein zweiter Vorschlag funktioniert tatsächlich wunderbar. Allerdings verstehe ich nicht ganz warum. Kannst du mir vielleicht noch erklären warum, wenn man "to text of" voranstellt, anschließend in ein Zahl wandeln kann?

Ich habe zwar eine Theorie, aber weder Zeit noch Lust diese zu überprüfen/untermauern, sorry.
Freuen wir uns doch einfach über den Workaround, der sich ja allgemein(er) nutzen lässt.
PS: Ich glaube mich zu erinnern, dass Hans früher™ für solche Messungen irgendwelche ticks-Osaxen am Start hatte.


als Antwort auf: [#546267]

Dezimalzahl von "text" nach "number" konvertieren

Dominik Sourcé
Beiträge gesamt: 10

24. Jan 2016, 17:29
Beitrag # 11 von 21
Beitrag ID: #546278
Bewertung:
(7845 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Ich habe zwar eine Theorie, aber weder Zeit noch Lust diese zu überprüfen/untermauern, sorry.

Kein Problem. Ich war nur neugierig ...

Zitat Freuen wir uns doch einfach über den Workaround, der sich ja allgemein(er) nutzen lässt.

Bin ganz deiner Meinung.
Schönen Abend!


als Antwort auf: [#546274]

Dezimalzahl von "text" nach "number" konvertieren

Hans Haesler
  
Beiträge gesamt: 5826

24. Jan 2016, 19:42
Beitrag # 12 von 21
Beitrag ID: #546281
Bewertung:
(7781 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Karsten,

früher™: Ja, das waren noch Zeiten! Da gab es die gute alte Scripting Addition GetMilliSec von Hideaki Iimori.

Als "Illustration" ein zufällig herausgepickter Beitrag von 2005: http://www.hilfdirselbst.ch/..._P419681.html#419681

Zum Stichwort "ticks": Das war noch viel früher™. Die Scripting Addition Jon's Commands, des legendären Jon Pugh, welcher heute noch ab und an zuhanden der AppleScript-Users mailing list einen Beitrag postet.

Gruss, Hans


als Antwort auf: [#546274]
(Dieser Beitrag wurde von Hans Haesler am 24. Jan 2016, 19:54 geändert)

Dezimalzahl von "text" nach "number" konvertieren

kkauer
Beiträge gesamt: 661

24. Jan 2016, 19:53
Beitrag # 13 von 21
Beitrag ID: #546282
Bewertung:
(7777 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Hans Haesler ] früher™: Ja, das waren noch Zeiten! Da gab es die gute alte Scripting Addition GetMilliSec von Hideaki Iimori.

Und heute™ ist/wäre auch für dich der Abzweig Shell (inkl. Perl o.ä.) das Mittel der Wahl?


als Antwort auf: [#546281]

Dezimalzahl von "text" nach "number" konvertieren

Hans Haesler
  
Beiträge gesamt: 5826

24. Jan 2016, 20:08
Beitrag # 14 von 21
Beitrag ID: #546283
Bewertung:
(7754 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Karsten,

heute™ (d.h. seit gut zehn Jahren) benötige ich TimeStamps fast nur noch für InDesign.
Sehr selten. Und wenn, dann meistens per JavaScript.

[ P.S.: Habe soeben meinen letzten Beitrag durch die Ticks ergänzt. ]

Gruss, Hans


als Antwort auf: [#546282]

Dezimalzahl von "text" nach "number" konvertieren

kkauer
Beiträge gesamt: 661

24. Jan 2016, 20:16
Beitrag # 15 von 21
Beitrag ID: #546284
Bewertung:
(7747 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Hans Haesler ] Sehr selten. Und wenn, dann meistens per JavaScript.

Prima! Wie genau?


als Antwort auf: [#546283]
X

Aktuell

Web / SEO / Blockchain / Betriebssystem
300

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
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Horizon

https://www.impressed.de/schulung.php?c=sDetail&sid=327

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!