CINTL - DEF USR Inhalt | FN - INPUT USING


Kapitel 5-4
Der Befehlssatz

DEFDBL  -  FIX



 
DEFDBL
Erklärung: Hat in Omikron Basic keine Bedeutung und wird vom Compiler ignoriert. Bitte nicht verwenden. 
   
DEFINT
Erklärung: Hat in Omikron Basic keine Bedeutung und wird vom Compiler ignoriert. Bitte nicht verwenden. 
   
DEFINTL
Erklärung: Hat in Omikron Basic keine Bedeutung und wird vom Compiler ignoriert. Bitte nicht verwenden. 
   
DEFSNG
Erklärung: Hat in Omikron Basic keine Bedeutung und wird vom Compiler ignoriert. Bitte nicht verwenden. 
   
DEFSTR
Erklärung: Hat in Omikron Basic keine Bedeutung und wird vom Compiler ignoriert. Bitte nicht verwenden. 
   
 

DEG 
Typ: Befehl 
Syntax:  DEG 
Erklärung:  Schaltet für trigonometrische Funktionen auf Berechnung nach Gradmaß um (0 bis 360). Standardeinstellung   ist Bogenmaß (0 bis 2PI), siehe RAD
Beispiel: DEG: PRINT SIN(45) 
RAD: PRINT SIN(45) 
Ergebnis:  0.707106781186548 
0.850903524534119 
siehe auch:  RAD 
   
 
 
DET
Typ: Funktion 
Syntax:  DET(<Matrixname>([<num.Ausdruck>],[<num.Ausdruck>])) 
Erklärung:  Diese Funktion berechnet die Determinante einer quadratischen Matrix. Die Matrix muß in Form eines zweidimensionalen Fließkommafeldes vorliegen. Die Größe der Matrix muß für beide Dimensionen angegeben 
werden. Wenn die Größenangabe fehlt, werden automatisch die beim Dimensionieren verwendeten Maximalwerte verwendet. 
Beispiel: DATA 1.,2.,3.,4.,5.,6.,7.,8.,9. 
DIM Matrix!(2,2) 
FOR I=0 TO 2 
 FOR J=0 TO 2 
  READ Matrix!(I,J) 
 NEXT J 
NEXT I 
PRINT DET(Matrix!(,)) 


 
Ergebnis: 
   
 
 
DIM 
Typ: Befehl 
Syntax:  DIM <Variable>(<num.Ausdruck>[[,<num.Ausdruck]])[[,<Variable>(<num.Ausdruck>[[,<num. Ausdruck]])]] 
Erklärung:  Dimensioniert eine oder mehrere Feldvariablen, wobei durch die numerischen Ausdrücke deren maximale Feldgrößen angegeben werden müssen. 
Das Feld kann maximal 2 Gigabyte groß werden. Für die Anzahl der Elemente in den einzelnen Dimensionen gibt es dabei keine Einschränkungen.
Die Benutzung von Feldvariablen ist erst nach einer DIM-Anweisung möglich. Nach einer Definition können Feldgrößen nur noch mit folgenden Einschränkungen verändert werden: Wird eine andere als die letzte Dimension eines Feldes verändert, verschieben sich die Feldinhalte. Wird das Feld um eine weitere Dimension erweitert, gehen die Feldinhalte verloren.

Hinweis: Die Variablentypen Flag (Postfix %F) und Byte (Postfix %B) können nur als Felder verwendet werden. 
Beispiel: DIM A%(10),Flags%F(100),Wert#(50,50) 
Ergebnis:  Die angegebenen Felder werden zur späteren Verwendung im Programm dimensioniert.
   
 
 
DMA_SOUND
Erklärung:  Reserviert für zukünftige Anwendungen! 
Dieses Wort bitte nicht verwenden!!
   
 
DPEEK 
Typ: Funktion 
Syntax:  DPEEK(<num.Ausdruck>) 
DPEEK(<Adresse>) 
Erklärung:  Liest an der durch den numerischen Ausdruck gegebenen Adresse eine Fließkommazahl mit doppelter Genauigkeit. Sie können diesen Befehl z.B. dazu verwenden, um Omikron Basic fremde Datenstrukturen, die vom Betribssystem oder anderen Programmen stammen in Omikron Basic Fließkommazahlen einzulesen. <Adresse> sollte eine durch 8 teilbare Zahl sein, sonst wird die Funktion erheblich langsamer ausgeführt.
Beispiel: Speicher=MEMORY(10) 
DPOKE Speicher,-PI
Minus_Pi# = DPEEK(Speicher)
PRINT Minus_Pi#
Ergebnis:  -3.14159265358979
siehe auch:  PEEK   WPEEK   LPEEK   SPEEK   POKE   WPOKE     LPOKE    SPOKE   DPOKE


   
DPOKE 
Typ: Befehl 
Syntax:  DPOKE <num.Ausdruck>,<num. Ausdruck> 
DPOKE <Adresse>,<Wert> 
Erklärung:  Legt den Wert an der gegebenen Adresse als eine Double-Float-Zahl ab. Damit können Sie also Fließkommazahlen direkt in den Speicher schreiben. Dieser Befehl ist nützlich, wenn man eigene Datenstrukturen mit Fließkommazahlen aufbauen will. <Adresse> sollte eine durch 8 teilbare Zahl sein, sonst wird der Befehl erheblich langsamer ausgeführt.
siehe auch:  PEEK   WPEEK   LPEEK   SPEEK   DPEEK   POKE   WPOKE    LPOKE    SPOKE
   

DRAW 
Typ: Befehl 
Syntax:  DRAW [TO] <num.Ausdruck>,<num.Ausdruck>[[ TO <num.Ausdruck>,<num.Ausdruck>]] 
DRAW [TO] <X>,<Y>[[ TO <Xn>,<Yn>]] 
Erklärung:  Zeichnet an der durch X und Y gegebenen Koordinate einen quadratischen Punkt. Durch Angabe von TO vor dieser Koordinate wird eine Linie von der aktuellen Position des Grafikstifts aus gezeichnet. Optional können weitere durch TO abgetrennte Koordinaten angegeben werden, die dann durch Linien verbunden werden. 

Achtung: Der Grafikstift wird durch andere Zeichenbefehle und auch durch TEXT und PRINT verändert. Darum müssen DRAW TO X,Y Befehle unmittelbar aufeinander folgen. Auf keinen Fall dürfen andere Grafikbefehle dazwischen stehen. 

Farbe, Linienstil und Linienbreite können über LINE COLOR, LINE STYLE bzw. LINE WIDTH 
bestimmt werden. Ist mittels CLIP ein Bildfenster definiert, wird außerhalb dieses Bereichs nicht gezeichnet. Statt mit einem quadratischen Stift kann auch mit einem rechteckigen gezeichnet werden. Breite und Höhe des rechteckigen Zeichenstifts können Sie mit der Prozedur Set_Pen_Size aus der Extension Library einstellen.

Hinweis: DRAW X,Y zeichnet nur einen einzelnen Pixel, auch wenn die eingestellte Linienbreite größer als 1 ist. 
Andere Linienattribute werden in diesem Fall ebenfalls nicht beachtet. Will man größere Punkte zeichnen, die auch den eingestellten MODE berücksichtigen, kann man das mit DRAW X,Y TO X,Y erreichen. Dieses Verhalten wurde eingeführt, um mit einer vereinfachten Funktion möglichst schnell einzelne Pixel zeichnen zu können.
Beispiel:  DRAW 100,100 
 DRAW 150,100 
 DRAW TO 100,150 
 DRAW 70,70 TO 20,30 TO 60,40 
Ergebnis:  Es werden diverse Punkte und Linien auf den Bildschirm gezeichnet.
siehe auch:  POLYGON   
   
 

DUMP
Erklärung: Hat in Omikron Basic keine Bedeutung und wird vom Compiler ignoriert. Bitte nicht verwenden. 
 

EDIT
Erklärung: Hat in Omikron Basic keine Bedeutung und wird vom Compiler ignoriert. Bitte nicht verwenden. 
   
 

ELLIPSE 
Typ: Befehl 
Syntax:  ELLIPSE <num.Ausdruck>,<num.Ausdruck>,<num.Ausdruck>, <num.Ausdruck>[,<num.Ausdruck>,<num.Ausdruck>] 
ELLIPSE <X>,<Y>,<X-Radius>,<Y-Radius>[,<Startwinkel>,<Endwinkel>] 
Erklärung:  Zeichnet um den Mittelpunkt X,Y eine Ellipse mit den angegebenen Radien. Optional können Start- und Endwinkel in Zehntel-Graden angegeben werden. Hierbei ist Winkel=0 rechts vom Mittelpunkt, Winkel=900 oberhalb des Mittelpunkts etc.. 
Farbe, Linienstil und Linienbreite können über LINE COLOR, LINE STYLE bzw. LINE WIDTH bestimmt werden. Ist mittels CLIP ein Bildfenster definiert, wird außerhalb dieses Bereiches nicht gezeichnet. 
siehe auch:  CIRCLE   PELLIPSE   PCIRCLE 
   
 

ELSE 
Typ: Befehl
Syntax:  ELSE
Erklärung:  Steht nach einer IF ... THEN ... Struktur und wird genau dann ausgeführt, wenn die letzte IF ... THEN ...  Bedingung nicht erfüllt, also falsch ist.
Beispiel: IF 0=1 
 THEN PRINT "0 ist gleich 1" 
  PRINT "Hamlet philosophiert über seine Existenz." 
 ELSE PRINT "0 ist ungleich 1" 
  PRINT "Sein oder nicht sein - das ist hier die Frage!" 
ENDIF
Ergebnis:  0 ist ungleich 1
Sein oder nicht sein - das ist hier die Frage!
siehe auch:  IF   THEN   ENDIF
   
 
 

END 
Typ: Befehl 
Syntax:  END 
Erklärung:  Beendet den Programmablauf und schließt alle Dateien. 
siehe auch:  CLEAR 
   
 

ENDIF 
Typ: Befehl 
Syntax:  ENDIF 
Erklärung:  ENDIF beendet den Programmzweig, der mit einer IF-Anweisung begonnen wurde. Bei einzeiligen IF ... THEN ... ELSE ...  ENDIF Strukturen kann das ENDIF auch weggelassen werden, wenn dahinter keine weiteren Befehle stehen. 
Beispiel: IF Count>Maximum THEN 
 Count=0 
 Max_Count+=1 
ENDIF 
IF Tag%=Montag% THEN PRINT "Heute ist Montag" ENDIF Tag%+=1 
'Hier wird Tag% in jedem Fall um 1 erhöht, da die IF-Anweisung voher durch ENDIF abgeschlossen wurde.
Ergebnis:   
siehe auch:   IF 
   
 
 
END_FN 
Typ: Befehl 
Syntax:  END_FN 
Erklärung:  Mit END_FN wird eine mehrzeilige Funktionsdefinition abgeschlossen. END_FN wirkt genau wie RETURN, kann jedoch keine Werte zurückgeben.  END_FN sollte jedoch immer am Ende einer Funktion verwendet werden. So 
wird eindeutig festgelegt, an welcher Stelle die Funktion zu Ende ist, besonders, wenn sie mehrere Ausgänge hat. 
Beispiel: PRINT FN Factorial(10) 
 END 


'Die Funktion ruft sich solange selbst auf, bis die Fakultät berechnet ist (rekursive Programmierung). 
DEF FN Factorial(N) 
 IF N=1 
  THEN  RETURN 1 
  ELSE  RETURN FN Factorial(N-1)*N 
 ENDIF 
END_FN 
Ergebnis:            3628800
siehe auch:  DEF FN    END_PROC     RETURN
   
 

END_PROC 
Typ: Befehl 
Syntax:  END_PROC 
Erklärung:  Mit END_PROC wird eine Prozedurdefinition abgeschlossen. END_PROC entspricht etwa dem Befehl RETURN, darf jedoch nur genau einmal (und zwar am Ende der Prozedur) verwendet werden.  So wird eindeutig festgelegt, an welcher Stelle die Prozedur zu Ende ist, besonders, wenn sie mehrere Ausgänge hat. 
Beispiel: DEF PROC Zentriere(Text$) 
 PRINT TAB((W_CHAR-LEN(Text$))/2);Text$; 
END_PROC 
Ergebnis:  Text$ wird zentriert auf dem Bildschirm ausgegeben.
siehe auch:  DEF PROC    END_FN    RETURN 
   
 

END_SELECT 
Typ: Befehl 
Syntax:  END_SELECT 
Erklärung:  Beendet eine SELECT ... CASE Anweisung. Wenn alle möglichen Alternativen aufgezählt sind, wird die SELECT-Anweisung mit END_SELECT abgeschlossen. 
Beispiel: INPUT "Wert 1-3 : ";Wert 
SELECT Wert 
 CASE 1 : PRINT "Der Wert war eins" 
 CASE 2 : PRINT "Der Wert war zwei" 
 CASE 3 : PRINT "Der Wert war drei" 
 DEFAULT : PRINT "Es sind nur Werte zwischen 1 und 3 zugelassen" 
END_SELECT 
END 
Ergebnis:  In Abhängigkeit vom eingegebenen Wert wird der entsprechende Text ausgegeben.
   
 

EOF 
Typ: Funktion 
Syntax:  EOF(<num.Ausdruck>) 
EOF(<Dateinummer>) 
Erklärung:  Ergibt -1 (=wahr), wenn das Ende der Datei erreicht ist, sonst 0 (=falsch). Die Datei muß zuvor mit OPEN geöffnet worden sein. 
Beispiel: OPEN "I",1,FN Get_Fsspec$(0,0,"NEWOMBAS.INF") 
WHILE NOT EOF(1) 
 In$=INPUT$(1,1) 
 PRINT In$; 
WEND 
CLOSE 1 
Ergebnis:  Gibt den Inhalt von NEWOMBAS.INF als Zeichenfolge aus. 
siehe auch:  LOC   LOF   OPEN
   
 

EQV 
Typ: Operator 
Syntax:  <num.Ausdruck>EQV <num.Ausdruck> 
Erklärung:  Verknüpft die beiden Ausdrücke bitweise äquivalent. 
Beispiel: PRINT BIN$((%1010 EQV %1100)+%10000) 
Ergebnis:  1001 
   
 
 

ERL 
Typ: Funktion 
Syntax:  ERL 
Erklärung:  Liefert immer die Nummer der Zeile, in der zuletzt ein Fehler aufgetreten ist. Diese Funktion kann z. B. nach ON ERROR GOTO benutzt werden, um die Fehlerzeile zu ermitteln. 
siehe auch:  ERR   ERR$   ERROR 
   
 
 

ERR 
Typ: Funktion 
Syntax:  ERR 
Erklärung:  Wenn während des Programmlaufs ein Fehler auftritt, so kann dessen Nummer mit ERR abgefragt werden. Wenn Sie z. B. versuchen, eine Datei zum Lesen zu öffnen, die gar nicht existiert, so können Sie dies herausfinden, indem Sie gleich nach dem OPEN-Befehl die Funktion ERR abfragen.

Hinweis: Viele BASIC-Befehle setzen ERR auf 0 zurück. Um einen möglichen Fehler mitzubekommen, sollten Sie die Abfrage direkt hinter der kritischen Stelle durchführen und für den Fall einer späteren Verwendung die Fehlernummer in eine Variable retten.
Beispiel: OPEN "I",1,FN Get_Fsspec$(0,0,"NichtExistent") 
Fehler%=ERR 
If  Fehler% THEN PRINT "Datei existiert nicht!" 
END
Ergebnis:  Datei existiert nicht!
siehe auch:  ERL   ERR$   ERROR 
   
 

ERR$ 
Typ: Funktion 
Syntax:  ERR$ 
Erklärung:  Funktioniert wie ERR, nur mit dem Unterschied, daß statt einer Nummer ein Fehlertext zurückgeliefert wird.
siehe auch:  ERL   ERR   ERROR  
   
 
 
ERROR
Typ: Befehl
Syntax:  ERROR(<num.Ausdruck>) 
ERROR(<Fehlernummer>) 
Erklärung:  Erzeugt den durch den numerischen Ausdruck angegebenen Fehler. Der Befehl kann dazu benutzt werden, um innerhalb einer Fehlerbehandlungsroutine diejenigen Fehler, die man nicht selbst bearbeiten möchte, an das BASIC weiterzureichen, wodurch dann vom Omikron Basic eine entsprechende Fehlermeldung ausgegeben wird. 
Beispiel: ERROR 5 
Ergebnis:  Unerlaubter Funktionsaufruf in Zeile Nr: 0
siehe auch:  ERL   ERR   ERR$   Fehlermeldungen des Omikron Basics 
   
 

EXEC 
Typ: Befehl 
Syntax:  EXEC <String-Ausdruck>[,<String-Ausdruck>] 
EXEC <Dateiname>[,<HighLevelEvent>] 
Erklärung:  Startet ein beliebiges ausführbares Programm als Child-Prozess. <Dateiname> muß einen FileSpecificationRecord enthalten. In dem zweiten String-Ausdruck können Sie einen HighLevelEvent an das Child-Programm schicken. Dadurch können Sie diesem z.B. gleich einen Dateinamen übergeben, so daß die Datei gleich nach dem Start von dem Child-Programm geöffnet wird. Eine genaue Beschreibung der verschiedenen Event-Typen finden Sie in "Inside Macintosh, Toolbox Essentials" und "Inside Macintosh, Interapplication Communication".
Beispiel: PRINT "Welches Programm soll gestartet werden?" 
R=0:FILESELECT(P$,F$,R) 
If R THEN EXEC F$ 
END
Ergebnis:  Wenn die FILESELECT-Box mit 'Öffnen' verlassen wurde, wird das ausgewählte Programm als Child-Prozess gestartet.
   
 

EXIT
Typ: Befehl 
Syntax:  EXIT {[<num.Ausdruck>]|TO <Marke> 
EXIT {[<Zahl der Strukturen>]|TO <Marke> 
Erklärung:  Mit EXIT kann eine Struktur, also eine Schleife, ein Unterprogramm oder ein SELECT ... CASE vorzeitig verlassen werden. Die Programmausführung wird direkt hinter dem Strukturende fortgesetzt. Auf diese Weise können also zusätzliche Abbruchbedingung in eine Schleife eingebaut werden. Für <Zahl der Strukturen> kann in Omikron Basic nur 1 oder -1 angegeben werden. 1 wirkt wie EXIT ohne Parameter, während im zweiten Fall eine Prozedur oder Funktion verlassen wird, ohne daß die globalen Variablen restauriert werden. Sie behalten also die ihnen zugewiesenen lokalen Werte. Dabei wird der Stack auf seinen Anfangswert (wie nach Programmstart) zurückgesetzt. Darum kann man mit EXIT -1 auch nur aus einem Unterprogramm zurück ins Hauptprogramm gelangen, nicht aber aus mehrfach geschachtelten Strukturen. Befindet sich das Programm nicht in einer Struktur, so wird es ganz beendet. 
Wird hinter TO noch ein Sprungziel angegeben, so wird nicht direkt am Strukturende weitergemacht, sondern erst an der angegebenen Marke. Trotzdem darf auch hier nicht mehr als eine Struktur verlassen werden. Das Sprungziel muß also in der nächsthöheren Ebene liegen. Mit EXIT TO z.B. zwei Schleifen auf einmal zu verlassen ist verboten. Ebenso dürfen Prozeduren und mehrzeilige Funktionen nicht mit EXIT TO verlassen werden. 
Beispiel: REPEAT 
 INPUT "Geben Sie einen Wert ein (nur RETURN -> ENDE): ";W$ 
 IF W$="" THEN EXIT 
 Summe!+=VAL(W$) 
UNTIL 0 
PRINT Summe! 
Ergebnis:  Der Wert von Summe! wird auf dem Bildschirm ausgegeben.
   
 

EXP 
Typ: Funktion 
Syntax:  EXP(<num.Ausdruck>) 
Erklärung:  Ergibt den Wert der Potenz von e (Eulersche Zahl) und dem numerischen Ausdruck. Die Umkehrfunktion ist LN
Beispiel: PRINT EXP(0) 
PRINT "Die Eulersche Zahl:"; EXP(1) 
Ergebnis: 
Die Eulersche Zahl: 2.71828182845905 
siehe auch:  SQR    LN   LOG 
   
 
 
EXPORT 
Typ: Befehl 
Syntax:  EXPORT <Statement>[[<,Statement>]] 
Erklärung:  Mit diesem Befehl können Sie festlegen, welche Variablen und Funktionen exportiert werden sollen. Dabei werden die Namen der zu exportierenden Statements einfach durch Kommata getrennt hinter dem Befehl aufgelistet. Man benötigt EXPORT hauptsächlich für die Programmierung von Shared-Libraries und Plugins. 
Beispiel: COMPILER "shlb"
A=3
B#=1.2345
C$="Sample String"
EXPORT A,B#,C$,FNEX Square#()
DEF FNEX Square#(X#)=X#*X# 
Ergebnis:  Es werden diverse Symbole exportiert, die dann von einem anderen Programm importiert werden können. 
siehe auch:  COMPILER "shlb"   MAC_OS   EXPORT_EXIT   EXPORT_INIT   EXPORT_MAIN   DEF FNEX 
Beispielprogramm "SharedLib.BAS" im DEMO-Ordner
   


 
EXPORT_EXIT 
Typ: Befehl 
Syntax:  EXPORT_EXIT <FNEX Function> 
Erklärung:  Mit diesem Befehl können Sie festlegen, welche Function als Termination-Routine dienen soll. Diese Function wird automatisch aufgerufen, bevor das Programm beendet wird. Wichtig ist dieser Befehl vor allem für die Programmierung von Shared-Libraries und Plugins, da man in diesen Fällen keine Kontrolle darüber hat, wann die Library beendet wird. Wenn der Anwender das Hauptprogramm, das Ihre Library benutzt, beendet, entfernt der Code-Fragment-Manager auch alle Libraries, die dann nicht mehr gebraucht werden, aus dem Speicher. Vorher wird aber noch die durch EXPORT_EXIT definierte Termination-Funktion aufgerufen, so daß Ihr Programm die Möglichkeit hat, noch notwendige Arbeiten auszuführen (z.B. die geänderten Daten zu speichern).
Beispiel: COMPILER "shlb"
EXPORT_EXIT FNEX Library_Exit
...
'Ihr Library-Programm
...
DEF FNEX Library_Exit
'Ihr Termination-Programmcode
END_FN 
Ergebnis:  Nachdem der Anwender das Hauptprogramm beendet hat, wird noch die Funktion 'FNEX Library_Exit' aufgerufen, bevor auch die Library beendet wird. 
siehe auch:  COMPILER "shlb"   MAC_OS   EXPORT    EXPORT_INIT   EXPORT_MAIN   DEF FNEX
Beispielprogramm "SharedLib.BAS" im DEMO-Ordner
   


EXPORT_INIT
Typ: Befehl 
Syntax:  EXPORT_INIT <FNEX Function> 
Erklärung:  Mit diesem Befehl können Sie festlegen, welche Function als Initialisierungs-Routine dienen soll. Diese Function wird automatisch aufgerufen, bevor das Programm das erste Mal benutzt wird. Wichtig ist dieser Befehl vor allem für die Programmierung von Shared-Libraries und Plugins, da man in diesen Fällen keine Kontrolle darüber hat, wann die Library benutzt wird. Wenn der Anwender das Hauptprogramm, das Ihre Library benutzt, startet, läd der Code-Fragment-Manager auch alle Libraries, die von dem Hauptprogramm gebraucht werden, in den Speicher. Danach wird sofort die durch EXPORT_INIT definierte Initialisierungs-Funktion aufgerufen, so daß Ihr Programm die Möglichkeit hat, alle nötigen Initialisierungen durchzuführen (z.B. Felder dimensionieren, globale Variablen initialisieren, Dateien laden).
Beispiel: COMPILER "shlb"
EXPORT_EXIT FNEX Library_Init
...
'Ihr Library-Programm
...
DEF FNEX Library_Init
'Ihr Initialisierungs-Programmcode
END_FN 
Ergebnis:  Nachdem der Anwender das Hauptprogramm gestartet hat, wird auch die Library in den Speicher geladen und die Funktion 'FNEX Library_Init' aufgerufen. 
siehe auch:  COMPILER "shlb"   MAC_OS   EXPORT    EXPORT_EXIT   EXPORT_MAIN   DEF FNEX
Beispielprogramm "SharedLib.BAS" im DEMO-Ordner
   


EXPORT_MAIN
Typ: Befehl 
Syntax:  EXPORT_MAIN <String-Constant> 
Erklärung:  Mit diesem Befehl können Sie ein sogenanntes Main-Symbol definieren. Bei normalen Applikationen hat dieser Befehl keine Wirkung, da in diesen Fällen das Main-Symbol immer der Entry-Point (Transition-Vector auf den Anfang des Programmcodes) das Main-Symbol ist. Wichtig ist dieser Befehl für Plugins, da in diesen Fällen wichtige Informationen für das Hauptprogramm im Main-Symbol untergebracht werden müssen (z.B. Plugin-Name, Versionsnummer ...). Was in dem Main-Symbol stehen muß, können Sie beim Hersteller des Hauptprogramms erfragen, für das Sie ein Plugin schreiben möchten.

Achtung: Das Main-Symbol muß ein konstanter String sein, da die Information schon zur Compilierungszeit bekannt sein muß.
Beispiel: COMPILER "shlb"
EXPORT_MAIN "SampleLibrary, Version 1.23"
...
'Ihr Library-Programm
...
Ergebnis:  Nachdem der Anwender das Hauptprogramm gestartet hat, erfragt dieses Informationen über Ihr Plugin aus dem Main-Symbol. 
siehe auch:  COMPILER "shlb"   MAC_OS   EXPORT    EXPORT_EXIT   EXPORT_INIT   DEF FNEX
   

FACT 
Typ: Funktion 
Syntax:  FACT(<num.Ausdruck>) 
Erklärung:  Berechnet die Fakultät des numerischen Ausdrucks. Da die Berechnung über die Gammafunktion (stetige Fortsetzung der Fakultät) erfolgt, können auch Fließkommazahlen als Argumente angegeben werden. Ganze negative Zahlen ergeben ein NAN (Not A Number) als Ergebnis (Polstellen). Positive Zahlen >170 ergeben INF (+unendlich).
Beispiel: PRINT FACT(10) 
PRINT FACT(171) 
PRINT FACT(-1) 
Ergebnis:   3628800 
 INF 
 NAN
   
 
 
FIELD 
Typ: Befehl 
Syntax:  FIELD [#]<num.Ausdruck>,<num.Ausdruck> [AS <String-Variable>] [[,<num.Ausdruck> [AS <String-Variable>]]] 
FIELD [#]<Dateinummer>,<Satzlänge> [AS <Puffervariable>] [[,<Satzlänge> AS <Puffervariable>]] 
Erklärung:  Definiert für die durch die Dateinummer gegebene Random-Access-Datei die Datenstruktur. Die Datei muß zuvor mit OPEN "R" geöffnet worden sein. Die Datensatzlänge muß den summierten Satzlängen der FIELD- Anweisung entsprechen. Ist die Datenstruktur zu umfangreich, um in einer Zeile definiert zu werden, so kann sie in zwei Zeilen aufgeteilt werden. Man verwendet hierzu eine zweite FIELD-Anweisung, wobei die erste Anzahl ohne Puffervariable die Summe aller bereits aufgezählten repräsentiert. 
Nach einem Lese-Vorgang durch GET enthalten die Puffervariablen den gelesenen Dateisatz. Bei einem Schreib-Vorgang mit PUT werden die Inhalte der Puffervariablen als Datensatz gespeichert. 
Es ist darauf zu achten, daß die Länge der Puffervariablen zu keiner Zeit verändert wird. Hierzu können die Feldinhalte mit LSET oder RSET übergeben werden. Weiterhin sind als Puffervariablen nur einfache Strings, aber keine Feldelemente zugelassen. 
Puffervariablen für FIELD-Anweisungen dürfen niemals lokal verwendet werden (LOCAL). Sie sollten wirklich ausschließlich der Nutzung als Dateipuffer vorbehalten bleiben. 
Beispiel: OPEN "R",1,FN Get_Fsspec$(0,0,"Adressen") 
FIELD 1,130,40 AS Name$,40 AS Strasse$,10 AS Plz$,40 AS Ort$ 
WHILE NOT EOF(1) 
 GET 1,0 
 LPRINT Name$:LPRINT Strasse$:LPRINT Plz$;Ort$ 
WEND 
CLOSE 1 
Ergebnis:  Eine Adressenliste wird auf dem Drucker ausgegeben. Es muß natürlich schon vorher eine Datei mit den Adressen angelegt worden sein.
siehe auch:  OPEN    GET    PUT 
   
 
 
FILES 
Erklärung: Hat in Omikron Basic keine Bedeutung und wird vom Compiler ignoriert. Bitte nicht verwenden.

Hinweis: Wenn Sie Inhaltsverzeichnisse auslesen möchten, können Sie OPEN "F" verwenden. 
   
 

FILESELECT oder FSEL_INPUT 
Typ:  Befehl 
Syntax:  FILESELECT (<Stringvariable>, <Stringvariable>, <num.Variable>) 
FILESELECT (<Filetyp Liste|Prompt|FileReplyRecord>,<Default-Name|Prompt|Fsspec>, <R>) 
FSEL_INPUT (<Stringvariable>, <Stringvariable>, <num.Variable>) 
FSEL_INPUT (<Filetyp Liste|Prompt|FileReplyRecord>,<Default-Name|Prompt|Fsspec>, <R>)   
Erklärung:  Das MacOS stellt zum Laden und Speichern verschiedene Fileselect-Boxen zur Verfügung.


1. R=0 : Es wird 'StandardGetFile' aufgerufen.

In der ersten Variablen kann eine Filetyp-Liste übergeben werden, die vorschreibt, welche Filetypen in der Box überhaupt angezeigt werden. Zum Beispiel würde "TEXTOBAS" bewirken, daß alle Textdateien und alle Omikron Basic Programmdateien angezeigt werden.
Nach dem Verlassen der Box erhält man in R das Erfolgsflag zurück: R=1 bedeutet, daß die Box mit 'Öffnen' verlassen wurde, R=0, daß Abbruch angeklickt wurde. In der ersten Variablen wird der FileReplyRecord zurückgegeben, dessen genaue Struktur in "Inside MacIntosh, Files" nachgelesen werden kann. In der zweiten Variablen bekommt man den FileSpecificationRecord, der das ausgewählte File eindeutig bestimmt und z.B. bei OPEN übergeben werden muß. 

2. R=1 : Es wird 'StandardPutFile' aufgerufen.

In der ersten Variablen kann ein Prompt übergeben werden. Das ist ein Text, der über dem Namensfeld des Files angezeigt wird. In der zweiten Variablen kann der gewünschte Filename übergeben werden.
Nach dem Verlassen enthält R wieder das Erfolgsflag, die erste Variable den FileReplyRecord und die Zweite den FileSpecificationRecord

Ab System 8.5 hat Apple neue Fileselect-Boxen eingeführt, die sogenannten File-Navigation-Services. Falls dieser Betribssystemteil vorhanden ist, wird er von FILESELECT automatisch anstelle der alten Funktionen 'StandardGetFile' und 'StandardPutFile' benutzt.
Wenn die File-Navigation-Services vorhanden sind, können Sie beim Öffnen von Dateien im zweiten Parameter noch einen Prompt übergben. Außerdem können in <R> zusätzliche Werte übergeben werden:

R=2 : Es wird "NavChooseFile" aufgerufen. Das ist eine Dateiauswahlbox, die kein Show-Menü enthält und normalerweise zur Auswahl einer einzelnen Datei dient.
R=3 : Es wird "NavChooseVolume" aufgerufen. Diese Dialogbox können Sie verwenden, um den Anwender aufzufordern, ein Volume (Laufwerk) auszuwählen.
R=4 : Es wird "NavChooseFolder" aufgerufen. Damit kann ein Ordner oder ein Volume ausgewählt werden.
R=5 : Es wird "NavChooseObject" aufgerufen. Wenn der Anwender die Möglichkeit haben soll, ein beliebiges Objekt (Volume, Ordner oder Datei) auszuwählen, ist dies die geeignete Dialogbox.
R=6 : Es wird "NavNewFolder" aufgerufen. Diese Dialogbox dient dazu, einen neuen Ordner anzulegen.

Achtung: Die File-Navigation-Services funktionieren nicht korrekt, wenn Ihr Programm keine Signatur hat. Verwenden Sie also das Compiler-Steuerwort
COMPILER "SIGNATURE SIGN" um Ihrem Programm eine Signatur zu geben. Wenn die File-Navigation-Services benutzt werden, wird auch kein <FileReplyRecord> sondern ein 16 Byte langer <NavReplyRecord> zurückgegeben. Die genaue Struktur dieses Datentyps ist in "Inside Macintosh, Programming With Navigation Services" erläutert.

Hinweis: Es wird in jedem Fall eine nicht verschiebbare und in der Größe nicht veränderbare Fileselect-Box erzeugt. Wenn Sie erweiterte Möglichkeiten wünschen, können Sie die EasyGem Library ab Version 3.10 verwenden.

Tipp:
Wurde ein Ordner ausgewählt, so enthält <Fsspec> nicht den Ordnernamen. Dies wurde von Apple so eingerichtet, damit man erkennen kann, dass ein Ordner und keine Datei ausgewählt wurde. Wenn man den Ordnernamen dennoch benötigt, kann man ihn sich mit OPEN "F" und GET <Dateinummer>,-1 beschaffen.
Beispiel: 'Es muß zuvor die Extension Library vom Editor aus geladen worden sein.
Extension_Init

REPEAT
 P$="":R=0
 FILESELECT(P$,F$,R)
 IF R THEN
  PRINT "Die gewählte Datei ist: ";FN Get_Filename$(F$)
  PRINT "Der Datei-Typ ist: ";FN Get_File_Type(F$)
  PRINT "Der Datei-Creator ist: ";FN Get_File_Creator(F$)
  PRINT "Die VolumeReferenceNumber ist: ";FN Get_Vrefnum(F$)
  PRINT "Die DirectoryIdentificationNumber ist: ";FN Get_Dirid(F$)
  PRINT
 ENDIF
UNTIL R=0
Entension_Exit
Ergebnis:  Das Programm fordert Sie in einer Fileselect-Box auf, eine Datei auszuwählen und stellt den Namen, den Datei-Typ, die VolumeReferenceNumber und die DirectoryIdentificationNumber auf dem Bildschirm dar.
Das Programm wird beendet, sobald man die Fileselect-Box mit 'Abbruch' verläßt.
siehe auch:  Programm "FILESELECT.BAS" im DEMO-Ordner   
   
 

FILL
Typ: Befehl 
Syntax:  FILL <num.Ausdruck>,<num.Ausdruck>,<num.Ausdruck>
FILL <X>,<Y>,<Umriß-Farbe> 
Erklärung:  Füllt eine Fläche ab der durch <X> und <Y> gegebenen Koordinate. Als Flächenrand gilt jeder Punkt, der die Umriß-Farbe hat. Bei <Umriß-Farbe>=-1 gilt jeder Punkt als Flächenrand, der eine andere Farbe hat, als der an der Koordinate (<X>,<Y>). Gibt man für <X> = -1 an, so werden alle Gebiete gefüllt, die von der Umriß-Farbe eingeschlossen sind, sowie auch einzelne Punkte und Linien in der Umriß-Farbe. Wird auch <Y> = -1 gesetzt, so wird der Füllvorgang invertiert. Das heißt, es wird jetzt der Bereich außerhalb der durch <Umriß-Farbe> eingeschlossenen Gebiete gefüllt. 
Gefüllt wird mit der durch FILL COLOR definierten Farbe und dem durch FILL STYLE definierten Füllmuster. 
Die Befehle PBOX, PRBOX, PCIRCLE, PELLIPSE und PPOLYGON füllen eine Fläche wesentlich schneller als der entsprechende Zeichenbefehl mit anschließendem FILL und sind deshalb nach Möglichkeit vorzuziehen. 
Ist mittels CLIP ein Bildfenster definiert, wird außerhalb dieses Bereiches nicht gefüllt. 
Beispiel: LINE COLOR =1:LINE WIDTH =5:LINE STYLE =1
CIRCLE 100,100,80
CIRCLE 200,100,80
CIRCLE 150,180,80
FILL COLOR =2:FILL 80,80,-1
FILL COLOR =3:FILL 220,80,-1
FILL COLOR =4:FILL 150,200,-1
FILL COLOR =6:FILL 150,80,-1
FILL COLOR =7:FILL 130,150,-1
FILL COLOR =5:FILL 170,150,-1
FILL COLOR =0:FILL 150,120,-1
PRINT "Ende mit Taste";:A$=INPUT$(1)
END
Ergebnis:  Mit den drei Grundfarben wird die additive Farbmischung dargestellt.
   
 

FILL COLOR 
Typ: Befehl 
Syntax:  FILL COLOR=<num.Ausdruck> 
Erklärung:  Der numerische Wert ist ein Index in die interne Farbtabelle (CLUT) des Omikron Basics. Die tatsächlichen Rot- Grün- und Blauanteile können Sie der Beschreibung über die 'Interne Farbtabelle des Omikron Basics' im Anhang entnehmen 
Beispiel:   
Ergebnis:    
siehe auch:  FILL   FILL PATTERN   FILL STYLE   PALETTE  Interne Farbtabelle des Omikron Basics 
   
 

FILL PATTERN
Typ: Befehl 
Syntax:  FILL PATTERN = <num.Ausdruck>,<num.Ausdruck> 
FILL PATTERN =<Füllmuster>,<Füllmuster> 
Erklärung:  In den numerischen Ausdrücken müssen Long-Integer-Zahlen übergeben werden. Aus den zusammengenommen 64 Bit der beiden Zahlen wird ein 8 x 8 Bit-Muster erzeugt, das als Füllmuster für Flächen dient, wenn FILL STYLE= 0,0 eingestellt ist. Jedes gesetzte Bit wird gezeichnet, jedes gelöschte bleibt frei.

Tip: Weil führende Nullen vom Editor nicht dargestellt werden und Binärzahlen, bei denen das höchste Bit gesetzt ist, als negative Zahlen interpretiert werden, ist es manchmal schwierig, festzustellen, welche Bits im Muster gesetzt sind und welche nicht. Man kann dieses Problem dadurch vermeiden, daß man Strings anstelle von Zahlen verwendet.

Hinweis: Farbige Füllmuster können auf diese Weise nicht definiert werden. Sie können sich aber mit einem Resource Editor (z.B. ResEdit von Apple) eigene, auch farbige Füllmuster erstellen.
Beispiel: FILL PATTERN= %00110011110011000011001111001100, %00110011110011000011001111001100
FILL STYLE =0,0
PBOX 100,100, 200,150
'Using strings for defining the pattern.
FILL PATTERN= VAL("%11101110111011101110111011101110"), VAL("%10111011101110111011101110111011")
PBOX 100,300, 200,150
Ergebnis:  Es werden zwei gerasterte Rechtecke gezeichnet.
siehe auch:  FILL   FILL COLOR   FILL STYLE  LINE PATTERN
   
 

FILL STYLE 
Typ: Befehl 
Syntax:  FILL STYLE=<num.Ausdruck>,<num.Ausdruck> 
FILL STYLE=<Füllart>,<Füllstil> 
Erklärung:  Wählt den bei Füll-Befehlen verwendeten Füllstil.
Mit <Füllart> kann gewählt werden:

0: nicht Füllen 
1: komplett Füllen 
2: Punktmuster 
3: Strichmuster 
4: Farbige Füllmuster 

Bei FILL STYLE= 0,0 wird das mit FILL PATTERN definierte Füllmuster verwendet.
In der Füllstiltabelle in Kapitel 7 finden Sie eine Übersicht über alle Werte, die hier übergeben werden können.

Hinweis: Die einzelnen Füllstilgruppen sind jeweils in einer Reihe zusammengefasst. Wenn Sie also eine Nummer übergeben, die größer ist als die höchste Nummer in dieser Reihe, erhalten Sie einen Füllstil aus der nächsten Gruppe. Zum Beispiel ergibt FILL STYLE = 2,25 das gleiche Ergebnis wie FILL STYLE = 3,1.
siehe auch:  FILL   FILL COLOR  FILL PATTERN Füllstiltabelle
   
 

FIX 
Typ: Befehl 
Syntax:  FIX(<num.Ausdruck>) 
Erklärung:  Rundet den numerischen Wert auf eine ganze Zahl ab. Im Gegensatz zu INT wird auch im negativen Bereich abgerundet. Das Gegenstück zu FIX ist FRAC
Beispiel: PRINT FIX( PI ) 
PRINT FIX(-12.5), INT(-12.5) 
Ergebnis: 
-12 -13 
siehe auch:  INT   FRAC 
   
 
 

CINTL - DEF USR Inhalt | FN - INPUT USING

Support | Bestellen | Start | Home: http://www.berkhan.de


© 1997-2001 Berkhan-Software