• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Interpret mit AppleScript

keman

Gast
Hab einmal gedacht, einen Interpreten mit AppleScript zu schreiben, ich hab also meine Programmmiersprache mal FScript genannt. Hier der vollständige Code des Interprets: http://mitglied.lycos.de/keman/main.scpt
Ich erkläre kurz die Grundlagen meiner einfachen Programmiersprache, damit mein Problem deutlicher wird:

Eine FScript-Datei muss *.format gespeichert werden. Mehrere Befehle werden durch Zeilenumbrüche getrennt. Der erste Befehl muss immer #<fscript> sein. Eine FScript-Datei muss mit dem Editor erstellt werden (Link oben)!

DISPL hello world


erzeugt eine MessageBox, in der hello world steht.

?SET? hallo%4

definiert eine Variable mit dem Index 4 und dem Wert hallo. Variablen haben keine Namen sondern nur einen Index, es gibt also Variable 1, Variable 2 etc. Die beiden Parameter hallo und 4 werden durch das %-Zeichen getrennt.

DISPL Die erste Variable ist &0001 und die fünfzehnte &0015

erzeugt eine MessageBox mit den Variablen mit dem Index 1 und 15.

Es gibt noch ziemlich viele weitere Befehle, die ich jetzt nicht erklären werde. Auf jeden Fall wäre es in meiner Programmiersprache praktisch, eine externe *.format-Datei von einer anderen *.format-Datei auszuführen. Deshalb hab ich diesen Befehl entwickelt:

?SUB? datei1.format

Sollte theoretisch die Datei datei1.format ausführen, die sich im home/FScript-Ordner des Users befinden sollte. Dies hab ich in AppleScript so gelöst:

else if command is "?SUB?" then
tell application "Finder"

set theStarter to "FScript:" & p1 & ""
--p1 ist der erste Parameter des Befehls ?SUB?
set thePath to the file theStarter in the home

set mpmp to "" & thePath & ""
set aber to read file mpmp

compile(mpmp, 2)

-- Der erste Parameter von compile() ist der FScript-Code, der ausgeführt werden sollte, der zweite ist total unwichtig.

end tell



Wie schon gesagt, sollte man sich vielleicht den ganzen Code anschauen, hier:

http://mitglied.lycos.de/keman/main.scpt

Kann mir da jemand helfen, wenn ich nämlich folgende FScript-Datei ausführen will, kommt immer compile() konnte nicht ausgeführt werden.

#<fscript>
?SUB? datei1.format

Die Datei datei1.format exisistiert tatsächlich. Aber wieso kommt immer eine Fehlermeldung? Ich verstehe das einfach nicht.
 

keman

Gast
Tatsächlich sollte dein Code gehen, und doch kommt jetzt immer noch die Fehlermeldung "getFormatFile konnte nicht ausgeführt werden". Ich verstehe hier gar nichts mehr...
 

keman

Gast
Das ist einfach krass. Entweder mein ScriptEditor hat irgend 'nen Bug (mac os x 10.4.4) oder ich weiss auch nicht mehr weiter. Immer die gleiche Fehlermeldung "getFormatfile konnte nicht ausgeführt werden".
 

keman

Gast
Ich hab auf alles geschaut. Das merkwürdige ist, dass eben die Fehlermeldung nicht sofort kommt, zuerst wird der erste Teil des Programms ganz normal ausgeführt, sobald ein FScript-Befehlt ?SUB? kommt, kommt die Fehlermeldung "compile konnte nicht ausgeführt werden". Und compiler ist kein Schlüsselwort, da es im Editor nicht blau sondern grün gefärbt wird.
 

keman

Gast
Nein, die Parameter sind in Ordnung, und die Variable mpmp wird nirgenswo verwendet, ausser für das ?SUB?. Und was meinst du mit dem tell application "Finder"?
Und die Klammern stehen doch am Handlername, nicht?
 

keman

Gast
Ja, die Leerstelle hab ich gesehen, hab sie gelöscht, aber es geht trotzdem nichts.
 

keman

Gast
Tut mir leid, auch schon versucht... Geht leider nicht...

Kann es sein, das die ganze Datei zu gross ist (ca. 1600 Zeilen)?
 

keman

Gast
Ja, wenn ich diese Beiträge lese, schient es tatsächlich so, als sei meine Datei zu lang. Wie soll ich aber dann das Problem lösen? Gibt es keinen anderen Script-Editor (ausser der XCode, aber der ist für mein Ziel total ungeeignet)?