[GastForen Programmierung/Entwicklung AppleScript Script aktualisieren?

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

Script aktualisieren?

JohanneS.
Beiträge gesamt: 1065

17. Okt 2013, 14:05
Beitrag # 1 von 9
Bewertung:
(3327 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Liebe Kollegen,

bei AppleScript bin ich blutiger Anfänger, das vorweg.
Ich habe ein älteres Script, das mir Kalendarien zusammenstellt, nach Eigenbeschreibung "für OS X 10.3.6 und 10.4, AS 1.9.3 und AS 1.10". Mit OS 10.6.8 läuft es auch noch, aber mit OS 10.8 geht es nicht mehr.
Die Fehlermeldung lautet:
Code
"2.2.4" kann nicht in Typ real umgewandelt werden. Nr. – 1700 

Kann man das Script aktualisieren, ohne viel von AS zu verstehen?
Ach ja, der Vollständigkeit halber: der Script-Autor ist an der angegebenen Adresse nicht mehr zu erreichen, das Script ist Freeware.

Vielen Dank im voraus!

Johannes
X

Script aktualisieren?

Hans Haesler
  
Beiträge gesamt: 5826

17. Okt 2013, 14:33
Beitrag # 2 von 9
Beitrag ID: #518556
Bewertung:
(3317 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Lieber Johannes,

also ... wenn eine Textkette zwei Punkte enthält, dürfte es auch unter älteren Versionen nicht klappen. Aber diese meine Behauptung müsste ich zuerst nachprüfen.

Das kann ich aber erst heute Abend tun, denn jetzt bin ich unterwegs.

Mein Angebot: Wenn Du mir das Script sowie eine Beschreibung der Aktionen zustellst, werde ich versuchen, ein Upgrade zustandezubringen.

Gruss, Hans


als Antwort auf: [#518551]

Script aktualisieren?

Hans Haesler
  
Beiträge gesamt: 5826

17. Okt 2013, 20:11
Beitrag # 3 von 9
Beitrag ID: #518572
Bewertung:
(3280 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Johannes,

meiner Behauptung von heute Nachmittag habe ich nun den praktischen Versuch folgen lassen:

Code
"2.2.4" as real 

Beim Ausführen kommt die Fehlermeldung:

Code
"2.2.4" kann nicht in Typ real umgewandelt werden. 

Und das mit Mac OS X 10.6.8.

Wieso es bei Dir läuft, bleibt mir ein Rätsel.

Gruss, Hans


als Antwort auf: [#518556]

Script aktualisieren?

JohanneS.
Beiträge gesamt: 1065

18. Okt 2013, 10:16
Beitrag # 4 von 9
Beitrag ID: #518588
Bewertung:
(3250 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Hans,

vielen Dank für Deine Hilfe.
Aber wenn Du es schon nicht schaffst …?

Viele Grüße
Johannes


als Antwort auf: [#518572]

Script aktualisieren?

Hans Haesler
  
Beiträge gesamt: 5826

18. Okt 2013, 14:32
Beitrag # 5 von 9
Beitrag ID: #518603
Bewertung:
(3230 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Johannes,

nun, in Bronze gegossene Grundsätze kann keiner aushebeln.

Und Dir kann hier nur geholfen werden, wenn Du uns aufdeckst, welcher Befehl unter welchen Umständen die Fehlermeldung auslöst.

Gruss, Hans


als Antwort auf: [#518588]

Script aktualisieren?

JohanneS.
Beiträge gesamt: 1065

18. Okt 2013, 15:02
Beitrag # 6 von 9
Beitrag ID: #518605
Bewertung:
(3222 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Hans,

der «Verlauf des Event-Protokolls» zeigt folgendes an:

Code
tell current application 
system attribute "ascv"
--> 17826340
current date
--> date "Freitag, 18. Oktober 2013 14:56:30"
path to documents folder from user domain
--> alias "Macintosh HD:xxxx"
end tell
tell application "AppleScript Editor"
display dialog "Geben Sie ein Jahr von 1583 bis 9999 an:" default answer "2014" buttons {"Jetzt nicht!", "Textmodus", "Layoutmodus"} default button 3 with icon 1
--> {text returned:"2014", button returned:"Textmodus"}
choose file name with prompt "Kalenderdatei erzeugen:" default name "Kalender_2014.txt" default location alias "Macintosh HD:Users:johannessteil:Documents:"
--> file "Macintosh HD:xxxx:Kalender_2014.txt"
end tell
tell current application
activate
beep
end tell
tell application "AppleScript Editor"
display dialog "\"2.2.4\" kann nicht in Typ real umgewandelt werden. Nr. -1700" buttons {"Aargh..."} default button 1 with icon 0
--> {button returned:"Aargh..."}
end tell
Ergebnis:
{button returned:"Aargh..."}

Hilft das weiter?
Viele Grüße
Johannes


als Antwort auf: [#518603]

Script aktualisieren?

Hans Haesler
  
Beiträge gesamt: 5826

18. Okt 2013, 15:21
Beitrag # 7 von 9
Beitrag ID: #518608
Bewertung:
(3212 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Johannes,

hart ist das Rentner-Leben! :-) Wir sind ständig unterwegs.

Ich werde heute Abend versuchen, zu erraten, worum es geht. Allerdings wäre es bedeutend einfacher, wenn Du mir das Script samt Beschreibung der Aktion zustellen würdest.

Gruss, Hans


als Antwort auf: [#518605]

Script aktualisieren?

Hans Haesler
  
Beiträge gesamt: 5826

18. Okt 2013, 18:44
Beitrag # 8 von 9
Beitrag ID: #518627
Bewertung:
(3171 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Johannes,

danke für das Script. So ist es viel leichter, das Problem einzukreisen.

Also ... unter Mac OS X 10.6.8 (= Snow Leopard) ist die Version von AppleScript mit "2.1.2" angegeben (AppleScript-Editor > Über AppleScript-Editor).

[[ Anmerkung: Die Forensoftware zerlegt das einzelne Zeichen welches gleich oder grösser als bedeutet. Nachstehend ist es durch is equal to or greater than ersetzt. ]]

Die problematische Zeile ...

Code
if ((version as real) is equal to or greater than 1.92) then 

... befindet sich im Handler 'on init_Globals(theMod)' am Schluss des Scripts.

Wenn man folgendes Snippet ausführt ...

Code
log class of version 
log version as real

... dann steht im Event-Protokoll

Code
(*version*) 
(*2.0001*)


Unter Mac OS X 10.8.4 (= Mountain Lion) ist die Version von AppleScript mit "2.2.4" angegeben.

Dasselbe Snippet ausgeführt gibt folgendes Ergebnis:

Code
(*text*) 

Ergebnis:
error "\"2.2.4\" kann nicht in Typ real umgewandelt werden." number -1700 from "2.2.4" to real

Des Rätsels Lösung: Der Typ der Version ist nun "text" und nicht mehr "version".

Was tun?

Wenn man das Script nur unter Mountain Lion einsetzen wird, dann können diese Zeilen ...

Code
-- Kompatibilität für OS 10.2.8, AS-Version 1.9 
if ((version as real) is equal to or greater than 1.92) then
set theGShortStrDate to true
else
set theGShortStrDate to false
end if

... so vereinfacht werden:

Code
set theGShortStrDate to true 


Sonst kann man es so lösen:

Code
-- Kompatibilität für OS 10.2.8, AS-Version 1.9 
if ((text 1 thru 3 of (version as string)) as real) is equal to or greater than 1.92 then
set theGShortStrDate to true
else
set theGShortStrDate to false
end if

So funktioniert es hier auch unter Mountain Lion.

Gruss, Hans


als Antwort auf: [#518608]

Script aktualisieren?

JohanneS.
Beiträge gesamt: 1065

18. Okt 2013, 19:29
Beitrag # 9 von 9
Beitrag ID: #518630
Bewertung:
(3160 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Hans,

das nächste Mal dann das Script gleich im ersten Anlauf, keine Frage!

Ja, so geht das wie gewünscht!
Herzlichen Dank nochmals

Johannes


als Antwort auf: [#518627]
X