Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Script-Datei per Script anlegen

 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Jens Hoffmann
•--->
•--->


Anmeldedatum: 07.05.2001
Beiträge: 175

BeitragVerfasst am: 19.09.2002 - 17:17    Titel: Script-Datei per Script anlegen Antworten mit Zitat

Hallo Leute

Ich möchte meine properties in eine Scriptdatei auslagern und per load script ansprechen. Falls die Datei nicht existiert, soll sie angelegt werden. Soweit klappt das auch, nur wird offensichtlich keine Script-Datei angelegt sondern ein unbekanntes Dokument ( "Script doesn't semm to belong to AppleScript"-Fehler). Die Zeile:

make new file at folder pref with properties {name:prefD, file type:"osas", file creator:"ToyS"}

Was tun?

Jens
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jens Hoffmann
•--->
•--->


Anmeldedatum: 07.05.2001
Beiträge: 175

BeitragVerfasst am: 19.09.2002 - 17:25    Titel: Script-Datei per Script anlegen Antworten mit Zitat

Habe gerade festgestellt, dass der craetor "ttxt" ist, wieso nimmt der nicht "ToyS"?
Grüße Jens
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 19.09.2002 - 17:34    Titel: Script-Datei per Script anlegen Antworten mit Zitat

Moin Jens,

store script ist der gewünschte Befehl.

script test
property eins : 1
property zwei : 2
end script

set temp to (choose folder) as string
store script test in file (temp & "test.scpt") replacing yes

copy (load script ((temp & "test.scpt") as alias)) to the_S

get the_S's eins

Viel Spaß!

Gruß,
Folker
_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 20.09.2002 - 09:36    Titel: Script-Datei per Script anlegen Antworten mit Zitat

Moin Jens,

kleiner Nachtrag: Du wolltest natürlich eine Möglichkeit die Properties sozusagen als Preferences zu generieren - da ist mein Rat wenig hilfreich! Nur so viel, Du kannst meines Wissens keine Scriptdatei so anlegen wie wir es von z.B. Textdateien gewohnt sind - Du kannst selbstverständlich Textdateien anlegen, der creator type ist "ToyS" für Apple's Scripteditor ("VIZF" für Smile). Es lassen sich ja nicht nur Texte im eigentlichen Sinne speichern, sondern auch Textdateien 'as list' - ich denke das ist eher das was Du willst?

ScriptObjects (bzw. Librarydateien) müssen natürlich schon irendwo vorhanden sein Ö

Gruß,
Folker
_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jens Hoffmann
•--->
•--->


Anmeldedatum: 07.05.2001
Beiträge: 175

BeitragVerfasst am: 20.09.2002 - 10:19    Titel: Script-Datei per Script anlegen Antworten mit Zitat

Hallo Folker

Zitat:
Du wolltest natürlich eine Möglichkeit die Properties sozusagen als Preferences zu generieren
Genau und mit store ist das für mein Vorhaben viel praktischer. Allerdings will es bei meinem Script nicht so klappen, ich krieg' die Fehlermeldung "Can't get file ..." beim on error. Dein Script funzt tadellos, ich komm' nicht drauf:

---
property pref : path to preferences folder
property prefD : "ProjectsData"

set prefPfad to (pref & prefD) as string

script props
property AktuellesProjekt : ""
property itms : {}
property roots : {}
property serverURL : {}
property SitePath : {}
property DefaultPage : {}
property Templates : {}
property Workfolder : {}
property DefaultPageInit : "index.html"
end script

tell application "Finder"
if not (file prefPfad exists) then
try
store script props in file (prefPfad) replacing yes
on error msg number num
display dialog msg & " " & num
end try
end if
end tell

---

Danke und Grüße Jens
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 20.09.2002 - 10:44    Titel: Script-Datei per Script anlegen Antworten mit Zitat

Der Finder will kein "script storen" - entweder via 'tell me to store Ö' oder
tell app "Finder" to set t_Bool to (file prefPfad exists)
if not (t_Bool) then
Ö

Gruß,
Folker
_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 20.09.2002 - 13:26    Titel: Script-Datei per Script anlegen Antworten mit Zitat

Für alle, die an dieser Sache interessiert sind, habe ich 3 kleine Skriptbeispiele:

Das erste Skript legt eine kompilierte Skriptdatei mit bestimmten Werten an:

set desktop_path to (path to desktop folder) as string
set file_spec to file (desktop_path & "CompiledScript" )

makePrefs(file_spec)

on makePrefs(file_spec)
script ScriptText
property ComText : "Dieser Text sollte geändert werden."
property PosMain : { 150, 150 }
property PosAbout : { 300, 150 }
end script
store script ScriptText in file_spec with replacing
end makePrefs


Mit dem zweiten Skript wird das angelegte Skript in einem anderen Skript geladen und auf die gespeicherten Werte zugegriffen:

set desktop_path to (path to desktop folder) as string
set file_spec to file (desktop_path & "CompiledScript" )
copy (load script file file_spec) to myVoreinstellungB
set TheRecord to ¨
{ myVoreinstellungB's PosMain, myVoreinstellungB's PosAbout, myVoreinstellungB's ComText }


Jetzt noch das dritte Script, um die Werte im gespeicherten Script zu ändern:

set desktop_path to (path to desktop folder) as string
set file_spec to file (desktop_path & "CompiledScript" )
copy (load script file file_spec) to myVoreinstellung
set myVoreinstellung's PosMain to { 286, 280 }
set myVoreinstellung's PosAbout to { 160, 320 }
set myVoreinstellung's ComText to "Das ist der geänderte Text"
store script myVoreinstellung in file file_spec with replacing


Natürlich kann man alle drei Scripts auch in einem einzigen vereinen. Ich habe es nur mal so gemacht, dass man alle drei im Skripteditor öffnen kann und so im Eventprotokoll die Auswirkung jedes einzelnen Skripts genau mitverfolgen kann.

HTH
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com


Zuletzt bearbeitet von Snow am 21.02.2003 - 17:36, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 20.09.2002 - 14:08    Titel: Script-Datei per Script anlegen Antworten mit Zitat

Kleiner Nachtrag: Wenn die einzelnen Scripte (Object + Object-Runner/User) getrennt sind ist folgendes recht komfortabel. Das Scriptobject kann in ein property geladen werden! Dann muss nur noch erfragt werden, ob property xy weiterhin das scriptobject hält und nur gegebenenfalls das Object neu laden - hat natürlich auch den Nachteil, dass bei Änderung des Scripttextes des Objects das Runner/User-Script ebenfalls neu kompiliert werden muss!

property the_S: 0  -- oder "" oder {}, ist egal
Ö
if class of the_S is not script then
copy load ÖÖ
end if

Gruß,
Folker

(Geändert von Folker um 14:09 Uhr am 20 Sep. 2002)
_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jens Hoffmann
•--->
•--->


Anmeldedatum: 07.05.2001
Beiträge: 175

BeitragVerfasst am: 20.09.2002 - 16:10    Titel: Script-Datei per Script anlegen Antworten mit Zitat

Folker & Snow, erst mal Danke!

@Snow: Leider funktioniert das bei mir nicht: die Datei "CompiledScript" wird zwar angelegt und beschrieben, die properties werden dann aber nicht überschrieben. Im Eventprotokoll steht hier:
"store script ´scriptª in file "StartHD:Desktop Folder:CompiledScript" replacing yes"
während beim Anlegen noch "store script ´script ScriptTextª" aufgezeichnet wird.

@Folker: deinen letzten kleinen Hinweis habe ich nicht ganz verstanden. Was meinst du mit "ob property xy weiterhin das scriptobject hält"? Wann lässt es xy denn fallen? ;)

Grüße und ein schönes Wochenende, Jens
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 20.09.2002 - 16:15    Titel: Script-Datei per Script anlegen Antworten mit Zitat

Ja gut, wenn z.B. das Script neu kompiliert wird oder eine unwahrscheinliche Korruption einsetzt (unwahrscheinlich, ist ja AppleScript und keine Politik Wink oder wenn property xy in einem z.B. error-Handler einfach auf Grund einer Ungereimtheit vorsichtshalber auf 0 gesetzt wird - mache ich in ScriptApp's durchaus häufiger (bin wohl eher eine vorsichtige Natur ;)

Gruß und schönes WE
Folker

Achso, aber Achtung, wenn dieser error-Handler Fall einsetzt, darf nicht versucht werden das Object via store script zu sichern! Einfach ein
if class of the_S = script then store script Ö
einbauen.


(Geändert von Folker um 16:35 Uhr am 20 Sep. 2002)
_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 20.09.2002 - 16:30    Titel: Script-Datei per Script anlegen Antworten mit Zitat

Also bei mir funzt es mit kleinen Änderungen auch unter OS X.1.5 genau wie gewünscht.

Da sähe Teil 1 so aus:

set desktop_path to (path to desktop from user domain) as string
set file_spec to (desktop_path & "CompiledScript")
makePrefs(file_spec)

on makePrefs(file_spec)
script ScriptText
property ComText : "Dieser Text sollte geändert werden."
property PosMain : {150, 150}
property PosAbout : {300, 150}
end script
store script ScriptText in file file_spec with replacing
end makePrefs

Teil 2 dann so:

set desktop_path to (path to desktop from user domain) as string
set file_spec to (desktop_path & "CompiledScript")
copy (load script file file_spec) to myVoreinstellung
set myVoreinstellung's PosMain to {100, 300}
set myVoreinstellung's PosAbout to {120, 222}
set myVoreinstellung's ComText to "Nochmals geänderter Text"
store script myVoreinstellung in file file_spec with replacing

und Teil 3

set desktop_path to (path to desktop from user domain) as string
set file_spec to (desktop_path & "CompiledScript")
copy (load script file file_spec) to myVoreinstellungB
set theRecord to ¨
{myVoreinstellungB's PosMain, myVoreinstellungB's PosAbout, myVoreinstellungB's ComText}
tell me to log theRecord

result: { {100, 300}, {120, 222}, "Nochmals geänderter Text"}

Gruß,
Folker
_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 20.09.2002 - 16:31    Titel: Script-Datei per Script anlegen Antworten mit Zitat

Zitat:
Leider funktioniert das bei mir nicht: die Datei "CompiledScript" wird zwar angelegt und beschrieben, die properties werden dann aber nicht überschrieben. Im Eventprotokoll steht hier:
"store script 'script' in file "StartHD:Desktop Folder:CompiledScript" replacing yes"
während beim Anlegen noch "store script 'script ScriptText'" aufgezeichnet wird.


Das ist bei mir genauso. Wenn man das angelegte Skript öffnet, sieht man keine Änderung, sie ist aber trotzdem da.

Lass mal das Skript laufen, das die Daten wieder liest und schau dann ins Ergebnisfenster - oder mach's mit Dialog:

set desktop_path to (path to desktop folder) as string
set file_spec to (desktop_path & "CompiledScript" )
copy (load script file file_spec) to myVoreinstellungB
set TheRecord to ¨
{ myVoreinstellungB's PosMain, myVoreinstellungB's PosAbout, myVoreinstellungB's ComText }
display dialog myVoreinstellungB's ComText


Das ist zwar alles sehr seltsam, ist aber der Grund, warum ich damals zum Testen auch drei einzelne Skripts angelegt hatte.

P.S. damit es unter X läuft muss die Zeile
set file_spec to file (desktop_path & "CompiledScript" )
abgeändert werden das 'file' muss raus, sonst gibt es eine Fehlermeldung, wenn die Datei noch nicht existiert. Entsprechend muss 'file' in der Zeile
store script ScriptText in file file_spec with replacing
vor der Variablen 'file_spec' eingefügt werden.
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de


AppleScript für absolute Starter