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

Global, was ist das?

 
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
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1517
Wohnort: Olten-CH

BeitragVerfasst am: 02.01.2005 - 14:03    Titel: Global, was ist das? Antworten mit Zitat

Embarassed Embarassed Embarassed
Snow hat Folgendes geschrieben:
Zitat:
Wer kann helfen?


Ich, ich, ich ...!


Snow, bitte sag das nochmals

Meine Frage :
ich habe von Folker im Nebensatz den Auftrag erhalten, eine GLOBAL zu machen

nicht den blassesten Dunst ich habe
Wenn eine "Global" die Funktion hat die so definierte Variable allen zur Verfügung zu stellen, die ein anderes AS starten wäre das ja praktisch:
ZB der in einem AS, welches eine Zelle des FM abliest dann für alle folgenden AS den Wert zur Verfügung stellen könnte, dann bin ich brennend daran interessiert

Wie gesagt, ich weiss einzig dass GLOBAL offenbar eine Variable verlangt die ZB durch eine property oder ein Skript mit set erzeugt wird weiter unten im Script, aber wofür sie dann gut ist im gegensatz zur property...??¿¿¿ Keine Ahnung...

In deinem "blutigen Anfänger AppleSkripter..." steht nicht ein einziger Eintrag über die Handhabe von Global und ich weiss ihn bei Gott bereits auswendig (ä?)
meine Versuche, kläglich, jämmerlich die sind alle mit äääääääääääää......:

global STARTNAME
--property STARTNAME : (first item of (list disks)) as string
set STARTNAME to (first item of (list disks)) as string
return STARTNAME


HILFE !
Clowngesicht
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 02.01.2005 - 14:36    Titel: Antworten mit Zitat

Eine globale Variable gilt auch in untergeordneten Skriptbereichen. Z.B. auch innerhalb von Handlern - ohne dass dabei extra Parameter übergeben werden müssen. Soweit kann man sie auch mit einer Property vergleichen.

Der Unterschied:
Globale Variablen können im Gegensatz zu Properties den enthaltenen Wert nicht über die Beendigung des Skripts hinaus speichern.

Wenn du also ein Skript hast, in dem du jedes Mal den Wert einer Property auf einen neutralen Ausgangswert zurücksetzen musst, um damit weiterarbeiten zu können, ist das ein klarer Fall für eine globale Variable.

Einfach ausgedrückt: Wenn's stört, dass Werte gespeichert bleiben, die Variable aber im gesamten Skript zur Verfügung stehen sollte, dann arbeite mit globalen Variablen.
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1517
Wohnort: Olten-CH

BeitragVerfasst am: 03.01.2005 - 14:49    Titel: Antworten mit Zitat

Very Happy Snow, ohne Umschweif, das war wieder mal vom feinsten
Alles klar, diese Funktion ist sicher sehr praktisch

Question
Darf ich dir noch eine Frage in diesem Zusammenhang stellen:
Property hat demnach die Fähigkeit den Wert der ihr aus untergeordneten Skriptbereichen gegeben wurde beim nächsten Handleraufruf nochmals wiederzugeben bis er wieder vom Skript überschrieben wird

gibt es nun die Möglichkeit eine Property herzustellen die von anderen AS abgerufen werden kann ohne komplizierte Adressenangabe?
wohl eher nicht ?sagt mir mein Hausverstand.
Aber die Tastsache dass wenn man eine Schreibweise einer Variablen ZB so wählt beim skripten :
asdf
und aber falls eine andere gleinamige Variable im System schon prä-existiert(inklusive in FM-files deponierte falls diese offen steht) beim Kompilieren die Schreibweise dieser alten Variable übernommen und somit
Question
asdf wird zu ASDF wie von Geisterhand. Könnte man dieses "Wissen" nicht auch auf den Inhalt anwenden?

Question(Folker hat mir die Fragen rationiert, so kann ich sie besser zählen) Weiss denn das System auch dessen zugeordneten Inhalt?
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius


Zuletzt bearbeitet von spirigwi am 04.01.2005 - 21:00, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 03.01.2005 - 15:09    Titel: Antworten mit Zitat

spirigwi hat Folgendes geschrieben:

Darf ich dir noch eine Frage in diesem Zusammenhang stellen:
Property hat demnach die Fähigkeit den Wert der ihr aus untergeordneten Skriptbereichen gegeben wurde beim nächsten Handleraufruf nochmals wiederzugeben bis er wieder vom Skript überschrieben wird


Oder bis das Skript neu kompiliert wird.

Zitat:
gibt es nun die Möglichkeit eine Property herzustellen die von anderen AS abgerufen werden kann ohne komplizierte Adressenangabe?


Ohne Pfadangabe geht's nicht. Wenn dir eine Pfadangabe nicht zu viel ist, kannst du ein Skript mit Properties gut als Voreinstellungsdatei verwenden.
Mit 'load script' lädst du dieses Skript in dein aktuelles Skript und kannst auf die Properties von Skript A zugreifen. Mit 'store script' kannst du veränderte Properties auch wieder in Skript A speichern.

Für die Ablage eines solchen Voreinstellungs-Skripts eignet sich der Applications Support Ordner sehr gut. Mit 'path to' kannst du den Dateipfad dorthin relativieren. So kann ein Skript auf verschiedenen Rechnern flexibel eingesetzt werden.

Ich habe das schon mal gemacht, indem ich das Skript, das die Properties enthält, erst von Skript B anlegen ließ. Bei jedem Skriptaufruf von Skript B wird zuerst geschaut, ob in Application Support (evtl. in einem Unterordner) das Skript vorhanden ist. Wenn ja, wurden die Daten von dort gelesen. Ansonsten erst mal das Skript angelegt und mit den wichtigsten Daten gefüttert.
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1517
Wohnort: Olten-CH

BeitragVerfasst am: 03.01.2005 - 15:31    Titel: Wert in Property in eine "ZENTRALE" übergeben Antworten mit Zitat

Snow hat Folgendes geschrieben:
Application Support

tönt gut
dann könnte man also gemäss deinem früheren Tipp(Netscape files) in den Application Support -Ordner auch einfach die Aliase legen die zu den "starren" AS files führen damit sie vom OSA-Menu klickbar werden andererseits bereits einen Fixen path hätten nämlich den Ordner der sowieso alle AS enthält die ich den jeweiligen Arbeitsstationen auffülle mit neuesten und uralten Elaboraten? gut.

Snow hat Folgendes geschrieben:
Mit 'store script' kannst du veränderte Properties auch wieder in Skript A speichern.

Das ist auch ne feine Sache, da ihr solche Tricks nie im Forum verwendet ist das für mich wie eine Offenbarung:
dann kann ich so also einen Wert in ein "Starren" AS über den Weg des Umschreibens einer property, die darin steckt , so übergeben dass ein anderes AS das "starre" AS mittels load aufruft den Wert mitgeteilt kriegt?
hab ichs richtig geschnallt?
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 03.01.2005 - 15:38    Titel: Antworten mit Zitat

Hi Willy,

gib' doch mal in der Suche die Suchworte "store AND script" ein. Da solltest du einiges zum Thema finden.

Z.B. hier:

http://www.fischer-bayern.de/phpBB2/viewtopic.php?t=502
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1517
Wohnort: Olten-CH

BeitragVerfasst am: 04.01.2005 - 20:47    Titel: Global doch im forum behandelt Antworten mit Zitat

Razz Wunderbar Snow die Suchabfrage und Link helfen dramatisch weiter

Die folgende Fragestellung habe ich aber nirgends explizit finden können:

Warum werden gewisse propertys wie folgender nur EINMAL, nämlich bei der Skriptverfassung "beschrieben"?
Folgendes Beispiel zeigt die EINMALIGKEIT :
-- ==================================================
property STARTNAME : first item of (list disks) as string
-- ==================================================
tell application "Finder"
activate
open folder STARTNAME
end tell
wenn ich nun Startdisk(Z.B: HD oder "SnowsDatengrab" usw ) umtaufe, gibts danach EINE Fehlermeldung


Folgendes Beispiel zeigt die NEUBESCHREIBUNG der Property:(mit dem Preis Handleraufruf)
-- ==================================================
property STARTNAME : {}
-- ==================================================
my PROPERTYER()
--################################
on PROPERTYER()
--hier propertys definieren
set STARTNAME to (first item of (list disks)) as string
end PROPERTYER

wenn ich nun Startdisk(Z.B: HD oder "SnowsDatengrab" usw ) umtaufe, gibts danach KEINE Fehlermeldung

Ein Handleraufruf ist aber für starren Text nicht nötig. Was hier verblüfft ist eigentlich,

warum bei Schreiben des AS die Formel: (first item of (list disks)) as string
doch immerhin EINMALIG berechnet wird. gibts Gesetze dafür ¿¿¿¿¿¿¿¿
Wenn man sich auf dieses Gesetz verlassen könnte könnte man die
Eigenschaft nämlich auch nutzen

oder nochmals anders gefragt:
wie kann man für ein geschlossenes Skript den im ersten Beispiel offenbar nötigen Kompiliervorgang noch einfacher umgehen als mit einem Handleraufruf?
Question gibts da was für? ZB global oder eben mit 'store script' (letzteres hab ich mir noch nicht durchgedacht Rolling Eyes


_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 04.01.2005 - 22:00    Titel: Antworten mit Zitat

Hallo Willy,

das Rätsel ist ganz einfach.

Beim ersten Beispiel ist der Inhalt der Property zunächst:

first item of (list disks) as string

Nach dem ersten Ablauf des Skripts enthält die Property nur einen Text, nämlich den Namen des Startvolumes.

Wenn nun der Festplattenname geändert wird, steht im Skript keine Funktion mehr, die deren Name ermittelt und es kommt zum Fehler.

Beim zweiten Beispiel wird der Festplattenname ja auf jeden Fall ermittelt. Die Property ist da eigentlich überflüssig, da ja nichts für längere Zeit gespeichert bleibt. Sie wird ja bei jedem Skriptaufruf neu gefüllt.
_________________
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