Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
StefanR •->
Anmeldedatum: 24.10.2001 Beiträge: 12 Wohnort: Schweiz
|
Verfasst am: 24.10.2001 - 15:37 Titel: Immer dasselbe File öffnen - Fehler abfangen, wenn dieses ve |
|
|
Und schon kommt die dritte Frage angeflogen...
Es geht prinzipiell immer noch um das Cumulus-Script. Dieses greift auf eine Filemaker Datenbank zu. Da es immer die gleiche ist hab ich folgendes gemacht:
property fmdb : "Dokumente:FileMaker:meineDB"
tell application "FileMaker Pro"
open file fmdb
end tell
Wenn ich die Datei nun verschiebe, schlägt das Event fehl - ergo ich muss am Scriptcode was ändern.
Meine Frage: gibt es in AppleScript etwas bequemes um das zu verhindern? In der Art, dass es am angegebenen Pfad sucht - wenns nichts findet präsentierts einen FileOpen Dialog und verwendet in Zukunft den neuen Pfad.
Falls es das nicht gibt, glaube ich, dass ichs von Hand schaffe. Dann würd ich halt in ein Prefs file hineinschreiben, wo die Datenbank liegt. Hierzu auch eine Frage: hat AppleScript eingebaute Funktionen um auf Preferences eines Skripts zuzugreifen oder müsst ich mir da dann ebenfalls die Finger wund coden?
Vielen Dank für eure Hilfe! _________________ Gruss,
Stefan Rusterholz |
|
Nach oben |
|
|
Folker •---->
Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 24.10.2001 - 15:56 Titel: Immer dasselbe File öffnen |
|
|
Mit einer kleinen Änderung müsste es klappen:
property the_DB : alias "Macintosh HD:Testdatei.fp3"
tell application "FileMaker Pro"
activate
open the_DB
end tell
Jetzt muss aber sichergestellt sein, dass die Datei beim kompilieren sich auch dort befindet. Daraufhin kann die Datei auch verschoben werden und wird trotzdem gefunden - eben Alias-Technologie.
Gruss,
Folker
PS: Bei außer-Haus-Lösungen macht so etwas immer irgendwie Bauchschmerzen! Ist nicht die von mir favorisierte Lösung mit einem alias in einem property. _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
|
StefanR •->
Anmeldedatum: 24.10.2001 Beiträge: 12 Wohnort: Schweiz
|
Verfasst am: 24.10.2001 - 17:05 Titel: Immer dasselbe File öffnen |
|
|
Da ich es mit einem alias nicht machen wollte (das Unwohlsein in meinem Bauch war mir bei dieser Lösung einfach zu stark hab ich jetzt drei Routinen geschrieben, mit welchen a) Preferences gelesen werden, falls b) das in den Prefs stehende File nicht gefunden wird ein OpenFile Dialog geöffnet wird und c) das Resultat von b) in die Prefs schreibt.
Damit lässt es sich dann ganz bequem leben.
Falls jemand Interesse an den Routinen hat - kein Problem, einfach an [email=s.rusterholz@interaktion.ch]s.rusterholz@interaktion.ch[/email] mailen. _________________ Gruss,
Stefan Rusterholz |
|
Nach oben |
|
|
Folker •---->
Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 24.10.2001 - 17:52 Titel: Immer dasselbe File öffnen |
|
|
Hm,
ruhig posten
Es gibt dank Thomas (macgix) ein Script, welches den Scriptcode so in HTML umsetzt, dass es gut lesbar erscheint.
http://www.macgix.com/dl/ikonboardFormatter.hqx
Gruß,
Folker _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
|
StefanR •->
Anmeldedatum: 24.10.2001 Beiträge: 12 Wohnort: Schweiz
|
Verfasst am: 25.10.2001 - 13:40 Titel: Immer dasselbe File öffnen |
|
|
Das Skript will leider TextEdit plus und ich verwende halt BBedit
Hier also manuell formatiert:
on readprefs(preffile, defpref)
--preffile: name des preferences-file als string
--defpref: default der preferences falls preffile (noch) nicht existiert als string
--vom file <Perferences-Folder>:<preffile> wird der inhalt bzw. defpref zurückgegeben
--pfad zum preferences-file erzeugen
set prefpath to (path to preferences as string) & preffile
tell application "Finder"
set filexists to exists file prefpath
end tell
if not filexists then
--prefsfile ist leer
set fh to open for access file prefpath with write permission
set defpref to defpref as string
write defpref to fh
close access fh
--display dialog "geschrieben: " & defpref
end if
set fh to open for access file prefpath
set returnvalue to read fh before eof
close access fh
return returnvalue
end readprefs
on writeprefs(preffile, content)
--preffile: name des preferences-file als string
--content: in das preffile zu schreibender inhalt als string
--in das file <Perferences-Folder>:<preffile> den Text <content> reinschreiben
set prefpath to (path to preferences as string) & preffile
set fh to open for access file prefpath with write permission
write content to fh
close access fh
end writeprefs
Für Verbesserungsvorschläge habe ich immer ein offenes Ohr, insbesondere, weil ich erst gestern mit AppleScripten begonnen hab _________________ Gruss,
Stefan Rusterholz |
|
Nach oben |
|
|
Folker •---->
Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 25.10.2001 - 19:24 Titel: Immer dasselbe File öffnen |
|
|
Hallo Stefan,
wow! Danke für Dein Posting.
> Das Skript will leider TextEdit plus und ich verwende halt BBedit
Das schreit ja förmlich nach einer "Portierung" zu BBEdit Ö
> Für Verbesserungsvorschläge habe ich immer ein offenes Ohr
Persönliche Vorlieben sind ja jedermann vorbehalten und weiterentwickeln muss das eh jeder im Hinblick auf eine jeweilige Fragestellung - aber verbessern?.
> ich erst gestern mit AppleScripten begonnen hab
Respekt.
Gruß,
Folker _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
|
Folker •---->
Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 25.10.2001 - 19:29 Titel: Immer dasselbe File öffnen |
|
|
Stop! Doch - setze im write Handler den 'eof' der Datei erst auf 0! Wenn Deine neuen Preferencen weniger Zeichen enthalten bleibt eine "Störung" am Ende des Dateiinhalts. Die Restzeichen der letzten Prefs.
Gruß,
Folker _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
|
macgix •--->
Anmeldedatum: 13.12.2000 Beiträge: 206 Wohnort: K–ln
|
Verfasst am: 25.10.2001 - 23:08 Titel: Immer dasselbe File öffnen |
|
|
Zu Tex-Edit Plus. BBEdit kann nicht mit stilisiertem Text umgehen, Tex-Edit Plus schon und das per AppleScript mit ein wenig "greplike"-Search and Replace.
Das Programm ist umsonst (wer registriert, kann den Quelltext bekommen) und ist unter diesem URL erhältlich. - Ein Muss für AppleScripter.
Gruß, ich muss weg,
Thomas _________________ [macgix] |
|
Nach oben |
|
|
StefanR •->
Anmeldedatum: 24.10.2001 Beiträge: 12 Wohnort: Schweiz
|
Verfasst am: 29.10.2001 - 12:43 Titel: Immer dasselbe File öffnen |
|
|
Danke für den Hinweis wegen des eof's.
Bei anderen Sprachen die ich kenne ist es halt so, dass der File-Inhalt vorgängig gelöscht wird (was nicht heissen soll, dass das besser wäre - halt einfach anders ).
Zu BBedit/TextEdit Plus: BBedit bietet halt gerade im Bereich Perl/PHP/HTML/C starke Vorteile (ich habe jetzt unter Windows seit über 2 Monaten nach einem vergleichbar guten Programm gesucht und noch nichts gefunden!). Styled Text ist in diesem Bereich auch unnötig bzw. eher unerwünscht (Syntax Coloring hingegen schon - und das macht der BBedit auch).
Aber wenn TextEdit Plus gratis ist, lade ich es mir wohl fürs AppleScripten herunter
Auf jeden Fall danke für den URL!
(Geändert von StefanR am 11:45 Uhr am 29 Okt. 2001) _________________ Gruss,
Stefan Rusterholz |
|
Nach oben |
|
|
macgix •--->
Anmeldedatum: 13.12.2000 Beiträge: 206 Wohnort: K–ln
|
Verfasst am: 29.10.2001 - 13:42 Titel: Immer dasselbe File öffnen |
|
|
Hallo Stefan
natürlich ist BBEdit prima, weswegen ich es auch seit ein paar Jahren für verschiedene Zwecke einsetze.
Es hat sich gezeigt, dass die Kombination von BBEdit und Tex-Edit Plus unschlagbar ist, da das jeweilige Programm Funktionen bietet, die das andere wiederum nicht hat.
Wenn man mit stilisiertem Text z.B. in einer FileMaker Datenbank umgeht, gibt es kaum einen Weg an Tex-Edit Plus vorbei. Man kann dann den stilisierten Text über die Zwischenablage transportieren, in Tex-Edit Plus nach HTML konvertieren, dann den Text rechnerisch umgestalten und wieder nach stilisiertem Text zurückkonvertieren. Den überführt man anschließend wieder in das jeweilige Datenfeld der FileMaker Pro Datenbank.
Das geht nicht mit BBEdit...., dafür hat man da richtiges GREP und kann den HTML Text aus obigem Beispiel natürlich wunderbar in BBEdit verändern bevor man diesen aus Tex-Edit Plus in die Datenbank zurückspeichert.
Bei der Bearbeitung von "getaggtem" Text entfaltet BBEdit erst seine Qualitäten. Arbeitet man mit stilisiertem Text und will diesen verarbeiten, muss Tex-Edit Plus auf jeden Fall auch eingesetzt werden. BBEdit alleine genügt nicht!
Und nicht zu vergessen: Doug Adams betreibt die Tex-Edit Plus Scripting Web-Site (Link hier). Die Vielfalt an AppleScripts für Tex-Edit Plus ist wohl ungleich größer als die für BBEdit.
Gruß,
Thomas _________________ [macgix] |
|
Nach oben |
|
|
macgix •--->
Anmeldedatum: 13.12.2000 Beiträge: 206 Wohnort: K–ln
|
Verfasst am: 29.10.2001 - 13:54 Titel: Immer dasselbe File öffnen |
|
|
Mit folgenden Script lässt sich ein Ordner (theFolder) inklusive seiner Unterordner nach einer Datei namens "datenbank.fp3" durchsuchen und liefert deren Pfad unter "ma_file_searched" zurück. Dabei sollte der Dateiname nur einmal vorkommen, sonst wird die zuletzt gefundene Datei zurückgeliefert. Natürlich kann man auch eine List aller Dateien dieses Dateinamens erzeugen (set ma_file_searched to ma_file_searched & theFile as list) und zum Beispiel anhand des Creation und des Modification Dates der Dateien die Neueste herausfiltern:
property ma_file_searched : ""
on ProcessAFile(theFile)
set theFileInfo to info for theFile
if folder of theFileInfo then
ScanAFolder(theFile)
else
if name of theFileInfo is "datenbank.fp3" then
set ma_file_searched to theFile
end if
end if
end ProcessAFile
on ScanAFolder(theFolder)
set fileNames to list folder theFolder
repeat with aFile in fileNames
set theFile to (theFolder as string) & contents of aFile
ProcessAFile(alias theFile)
end repeat
end ScanAFolder
on open of filesList
repeat with aFile in filesList
ProcessAFile(contents of aFile)
end repeat
end open
on run
set ma_file_searched to ""
set theFolder to choose folder with prompt "Select folder to scan:"
ScanAFolder(theFolder)
return ma_file_searched
end run
_________________ [macgix] |
|
Nach oben |
|
|
|