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

Variablen in verschiedenen Scripten nutzen?

 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
MotoxX
•->
•->


Anmeldedatum: 09.08.2008
Beiträge: 14

BeitragVerfasst am: 09.10.2008 - 12:38    Titel: Variablen in verschiedenen Scripten nutzen? Antworten mit Zitat

Hi,
ich hab leider mal wieder ein Frage und hoffe ihr könnt mir da helfen…
Ich habe ein Applescript Project in dem ich mit mehreren Scripten arbeite. Ist es irgendwie möglich eine Variable, die in einem anderen Script liegt, als das in dem die Berechnung stattfindet zu verändern oder auch auszulesen?
Beispiel: Im Scipt 1 rechne ich
Code:
set Variable1 to Variable1 + 2
und dann soll der neue Wert der Variable1 and Variable2, die sich in Script2 befindet übergeben werden.

Vielen dank nochmal für eure Hilfe
Gruß MotoxX
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 09.10.2008 - 21:46    Titel: Antworten mit Zitat

es kommt darauf an, was du mit den vars im script 2 anstellen willst, und vor allem, wie die laufzeit der vars sein soll, sprich, wie lang sie überleben soll? du hast die möglichkeit, parameter, globals oder properties einzusetzen.

wenn du diese nur kurzfristig für einen aufruf eines handlers aus script2 benötigst, kannst du dies so erreichen:
in script 1:
set s2 to load script file "pfad:zum:script2.scpt"
set var3 to s2's irgendeinS2handler(var1,va2)
in script 2:
definierts du den handler und gibst, was immer du willst, zurück. dieser wert wird dann an script1 an die var3 übergeben. script2 bleibt bei dieser variante unberührt und wird quasi nur "benutzt".

du kannst aber auch die werte der vars komplett an script2 übergeben, und script2 das ruder in die hand geben:
in script 1:
run script file "pfad:zum:script2.scpt" with parameters {S1var1,S1var2}
in script 2:
in diesem script gehts dann weiter und du übernimmst die parameter mit dem run-handler:
on run {S2var1,S2var2}
die variablen S2var1 und S2var2 des script2 haben dann die werte der S1var1 und S1var1 des Scripts 1

ich hoffe, eins der beiden varianten hilft dir. was du mit den variablen in beispiel 2 dann anstellst bleibt dir überlassen. wenn du sie dauerhaft in script2 speichern willst, machst du das über properties.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
MotoxX
•->
•->


Anmeldedatum: 09.08.2008
Beiträge: 14

BeitragVerfasst am: 09.10.2008 - 23:04    Titel: Antworten mit Zitat

Hey danke, das ist genau was ich gesucht habe. Aber was gebe ich als Pfad zum Script an, wenn ich das ganze in Xcode als Applescript-Projekt habe?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 09.10.2008 - 23:30    Titel: Antworten mit Zitat

versuchs mal mit:
path to resource "Scripts:Script2.scpt"

oder lass dir mal "path to resource" anzeigen. was kommt dabei raus?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
MotoxX
•->
•->


Anmeldedatum: 09.08.2008
Beiträge: 14

BeitragVerfasst am: 09.10.2008 - 23:49    Titel: Antworten mit Zitat

hmm... is merkwürdig. Wenn ich mir versuche den path to resource ausgeben zulassen, sagt kommt immer die Fehlermeldung "Resource not found"
Probiere ich das aber mit einem Bild, das ich bei meinen Resourcen habe, dann gibt er mir ohne probleme den pfad zurück.... Da bin ich gerade etwas ratlos
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MotoxX
•->
•->


Anmeldedatum: 09.08.2008
Beiträge: 14

BeitragVerfasst am: 10.10.2008 - 01:43    Titel: Antworten mit Zitat

Hi, ich hab zwar leider noch nicht rausgefunden, warum das mit dem path to resource nicht funktioniert, aber ich hab einen anderen weg gefunden, wie ich an das script rannkomme:
Code:
set s2 to load script file ((path to me as text) & "Contents:Resources:Scripts:Script2.scpt")

da der speicherort im bundle ja immer gleich ist, muss ich das script also nur den Pfad zum App finden lassen und der rest ist statisch und kann somit direkt angegeben werden...
Aber nichts desto trotz danke für deine Antwort, nur dadurch bin ich auf die richtige Pfärte gekommen.

Eine gute nacht noch!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 10.10.2008 - 17:10    Titel: Antworten mit Zitat

Auch wenn Du schon eine andere Lösung gefunden hast: Lege doch bitte mal ein Alias von "Script2.scpt" direkt in Content:Resources: (ebenfalls mit dem Namen "Script2.scpt" und probiere dann mal

path to resource "Script2.scpt".

Ich vermute, er kann das mit dem Unterordner nicht auflösen. (Leo oder Tiger?)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
MotoxX
•->
•->


Anmeldedatum: 09.08.2008
Beiträge: 14

BeitragVerfasst am: 10.10.2008 - 17:13    Titel: Antworten mit Zitat

Ok das probiere ich gleich mal aus (Leo)...
Aber bei der Methode von oben zeigt sich irgendwie ein Problem und ich weiß nicht wieso... Ich habe nun folgendes vor. Ich möchte eine Variable aus dem Script1 an das Script zwei weitergeben und das es dort in eine globale variable geschrieben wird, damit ich innerhalb des Script zwei verwenden kann.
Hier mein Code im Script1:
Code:
Script2's Dateneingang(Variable zur Übergabe)


Im Script2 sieht es dann so aus:
Code:
on Dateneingang(ÜbergebeneVariable)
set GlobaleVariable to ÜbergebeneVariable
end Dateneingang


wenn ich jetzt aber die variable in dem zweiten Script verwenden will, dann sagt er immer nur, die sei nicht definiert, obwohl ich sie durch die oben benutzten codes definiert habe.


Zuletzt bearbeitet von MotoxX am 10.10.2008 - 17:23, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MotoxX
•->
•->


Anmeldedatum: 09.08.2008
Beiträge: 14

BeitragVerfasst am: 10.10.2008 - 17:23    Titel: Antworten mit Zitat

ok, liegt wirklich daran, das er den Unterordner nicht auflösen kann. Wenn ich das Script direkt in den Ordner "Resources" packe, dann findet er es auch.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 11.10.2008 - 01:07    Titel: Antworten mit Zitat

MotoxX hat Folgendes geschrieben:
wenn ich jetzt aber die variable in dem zweiten Script verwenden will, dann sagt er immer nur, die sei nicht definiert, obwohl ich sie durch die oben benutzten codes definiert habe.

wenn du genau ließt, dann habe ich das oben ja auch geschrieben.
definiere mal in Script2 deine globale variable durch eine property.

property GlobaleVariable : ""

einfach als erste zeile in dein script
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
MotoxX
•->
•->


Anmeldedatum: 09.08.2008
Beiträge: 14

BeitragVerfasst am: 11.10.2008 - 07:14    Titel: Antworten mit Zitat

das is klar. Hatte ich auch so versucht, nur leider bleibt die Variable nicht so lange bestehen, wie das Programm läuft, sondern nur so lange, wie ich mich in dem Script aufhalte. Arbeite ich also wieder in script 1 wird die variable wieder resettet und auf den Grundwert gesetzt, den ich am anfang in der ersten Zeile definiert hatte.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 11.10.2008 - 13:30    Titel: Antworten mit Zitat

ich habe das schon vermutet. es liegt wohl an der load-funktion. script2 wird dabei nur ein teil von script1 und läuft nicht "selbständig". du wirst deshalb auf das zweite modell zurückgreifen müssen. oder aber du speicherst die property in script1. keine ahnung, was genau du vorhast. eine weitere und vielleicht bessere methode wäre, solche werte in eine .plist auszulagern, um sie dort dauerhaft zu hinterlegen. darauf kannst du dann jederzeit von beiden scripten darauf zugreifen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X 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