Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
weisses_papier •->

Anmeldedatum: 01.02.2002 Beiträge: 18
|
Verfasst am: 21.05.2003 - 14:54 Titel: FM 4.1 Scriptverwaltung / Inhalt eines Scripts...auslesen |
|
|
Hallo zusammen,
ich würde gern meine Scripts mit FileMaker 4.1 verwalten und möchte sie dazu per Droplet in einzelne FM-Datenbank-Felder einlesen (Name der Datei, Pfad, Inhalt als Text, etc.).
Frage: Wie kann man den Inhalt eines Scripts / Droplets und den Text des jeweiligen Beschreibungsfeldes auslesen?
Immer vorausgesetzt, dass das jeweilige Script editierbar ist, möchte ich natürlich die Handarbeit "Öffnen in SkriptEditor, alles auswählen, kopieren, in FM-Felder einsetzen" automatisieren.
Kann mir da jemand einen Rat geben?
Schönen Gruß
Claus |
|
Nach oben |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 21.05.2003 - 20:16 Titel: |
|
|
Hallo Claus,
mit Dialog Director 0.7 wird auch die OSAX "Resource Utilities" geliefert. Damit kannst du den Script-Text aus einer Script-Resource auslesen.
Nach einigen Versuchen bin ich zu folgender funktionierenden Variante gekommen:
on run
set f to choose file
set rf to res open f
try
set x to (res get rf id 128 type "scpt") as styled text
on error number n
res close rf
error number n
end try
res close rf
set the clipboard to x
end run
Hier habe ich das mitgelieferte Beispiel "Get Res.as" entsprechend abgewandelt.
Ich hoffe, das hilft dir weiter.
Gruß _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com |
|
Nach oben |
|
 |
weisses_papier •->

Anmeldedatum: 01.02.2002 Beiträge: 18
|
Verfasst am: 23.05.2003 - 16:09 Titel: Snow! Danke! |
|
|
Snow! Danke!
Wieder einmal beweist sich, welche Seele von Mensch das AS-Forum betreibt!
Ein Angebot:
Wenn mir die geplante FM/AS-Programmierung gelingen sollte, kann ich die entsprechende FM-Basidatei zur Scriptarchivierung nebst Script über das Forum anbieten.
Der Download könnte über das Forum oder aber per Link zu meiner Seite erfolgen.
Was meinst Du dazu?
Und noch eine Frage / Bitte:
Dein Script habe ich entsprechend angepasst; es läuft, zwar sehr langsam, aber “et loift”;
was ich mal wieder nicht gebacken bekomme, ist die Programmierung als Droplet, auf das man einen Ordner zieht, wobei alle Scripts / Droplets innerhalb dieses Ordners und der weiteren Unterordner berücksichtigt werden.
Kannst Du da noch etwas tun?
Schönen Tach
Claus
on open theList
--on open
tell application "Finder"
activate
set fileList to selection
--hier die zu öffnende FM-Datenbank angeben
open file "AppleScript-Archiv" of folder ¬
"AppleScript" of folder "Apple Extras" of folder ¬
"Applications (Mac OS 9)" of startup disk
set FMdatenbank to "AppleScript-Archiv"
with timeout of 6000 seconds
repeat with thisItem in fileList
set thisItem to thisItem as alias
set rf to res open thisItem
try
set BeschreibungTxt to (res get rf id 1128 type "TEXT") as styled text
end try
try
set ScriptTxt to (res get rf id 128 type "scpt") as styled text
on error number n
res close rf
error number n
end try
res close rf
set the scriptName to the name of thisItem
set derPfad to thisItem as string
tell application "FileMaker Pro"
activate
tell document FMdatenbank
tell (create new record at end)
try
copy scriptName to cell "Scriptname"
end try
try
copy BeschreibungTxt to cell "Beschreibung"
end try
try
copy ScriptTxt to cell "Scripttext"
end try
try
copy derPfad to cell "Pfad"
end try
go to last record
end tell
end tell
end tell
end repeat
end timeout
end tell
end open |
|
Nach oben |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 23.05.2003 - 17:26 Titel: |
|
|
Hallo Claus,
ich habe das Skript jetzt erst mal so verändert, dass man eine oder mehrere Dateinen darauf ziehen kann.
Den Teil
"tell application "Finder"
activate
set fileList to selection
..."
kannst du dir eigentlich sparen. Die Referenzen zu den Dateien werden ja beim "droppen" an das Skript übergeben und landen in der Variablen "theList".
Es ist auch nicht gut, den ganzen Teil, der die Scripting Addition "Resource Utilities" betrifft, innerhalb des Tell-Blocks an den Finder zu platzieren. Dann werden die Befehle nämlich zuerst an den Finder geschickt, der stellt dann fest, dass er gar nichts damit anfangen kann und dann werden sie erst an die Scripting Addition weitergeleitet.
Den FileMaker-Teil habe ich auch etwas umgestaltet. Mit diesem Vorgehen habe ich bereits gute Erfahrungen gemacht.
Das Skript läuft meiner Meinung nach schneller, wenn man keinen "activate"-Befehl an FileMaker schickt. Genaue Zeitmessungen müsste ich allerdings erst noch vornehmen.
Hier mal das geänderte Skript:
property FMdatenbank : ""
property BaseName : ""
on open theList
if FMdatenbank = "" then
set FMdatenbank to choose file with prompt "Wo befindet sich die Datei \"AppleScript-Archiv\"?"
set BaseName to name of (info for FMdatenbank) as string
end if
with timeout of 6000 seconds
repeat with thisItem in theList
set thisItem to thisItem as alias
set rf to res open thisItem
try
set BeschreibungTxt to (res get rf id 1128 type "TEXT") as styled text
on error
set BeschreibungTxt to ""
end try
try
set ScriptTxt to (res get rf id 128 type "scpt") as styled text
on error number n
set ScriptTxt to ""
res close rf
error number n
end try
res close rf
tell application "Finder"
set the scriptName to the name of thisItem
set derPfad to thisItem as string
end tell
tell application "FileMaker Pro"
--activate
if not (layout 1 of database BaseName exists) then
open alias FMdatenbank
else
go to layout 1
go to (create new record at end)
set x to current record
set cell "Scriptname" of x to scriptName
set cell "Beschreibung" of x to BeschreibungTxt
set cell "Scripttext" of x to ScriptTxt
set cell "Pfad" of x to derPfad
end if
end tell
end repeat
end timeout
end open
Wenn du es jetzt wirklich so gestalten möchtest, dass man einen Ordner darauf ziehen kann, solltest du dir mal meinen Artikel "Rekursive Handler" ansehen und versuchen, das Skript mit dem dortigen Template zu kombinieren.
Viel Spass beim Tüfteln
Gruß _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com |
|
Nach oben |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 23.05.2003 - 17:40 Titel: |
|
|
Ich habe gerade einen Schwachpunkt der "Resource Utilities" entdeckt.
Wenn ein Script mit einer Leerzeile beginnt, kommt die Fehlermeldung: "Can't make 'script' into an item."
Diesen Fehlernummer sollte man abfangen und dem User dann entsprechend mitteilen, dass er die Leerzeile am Skriptanfang erst entfernen muss. _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com |
|
Nach oben |
|
 |
|
|
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
|
|
|