PofoWiki

Die ultimative Informationsquelle zum ATARI Portfolio

Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:diy:andere:profan

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
software:diy:andere:profan [14/02/2006 18:02] – ergänzt uxtsoftware:diy:andere:profan [Unknown date] (aktuell) – Externe Bearbeitung (Unknown date) 127.0.0.1
Zeile 1: Zeile 1:
 ====== Profan v4.0 ====== ====== Profan v4.0 ======
  
- Als ich zuerst davon hörte war ich verwundert, eine Programmiersprache für den Pofo von der ich noch nichts gehört habe? Ein Arbeitskollege erzählte mir er habe auf www.profan.de etwas über den ATARI Porfolio gelesen.  + Als ich zuerst davon hörte war ich verwundert, eine Programmiersprache für den Pofo von der ich noch nichts gehört habe? Ein Arbeitskollege erzählte mir er habe auf www.profan.de etwas über den ATARI Porfolio gelesen.  
-Er sagte PROFAN sei eine praktische Programmiersprache, halb Script, halb Batch, für diverse Plattformen mit +Er sagte PROFAN sei eine praktische Programmiersprache, halb Script, halb Batch, für diverse Plattformen mit 
 Open-Source Quell-dateien. Open-Source Quell-dateien.
- Tatsächlich, es gab auch eine Version für den POFO.+ Tatsächlich, es gab auch eine Version für den POFO.
  
- Halb BASIC, halb PASCAL mit C-Ansätzen, ist es eine Script-Sprache mit gewissen Eigenheiten. Die vorliegende Version wurde speziell für den Portfolio angepasst, bietet also nicht alle Funktionen die die PC-Versionen beinhalten. + Halb BASIC, halb PASCAL mit C-Ansätzen, ist es eine Script-Sprache mit gewissen Eigenheiten. Die vorliegende Version wurde speziell für den Portfolio angepasst, bietet also nicht alle Funktionen die die PC-Versionen beinhalten. 
- Um Entäuschungen vorzubeugen sei hier gesagt: PROFAN ünterstützt keine Grafik (nur Text-Modus), keine Dezimalzahlen (nur Integer) und keine Operatoren (+ - * / ...), hierzu gibt es spezielle Funktionen wie @ADD(a,b) oder @MUL(a,b). @SQR(N) bildet die Quadratzahl (N hoch 2), Wurzel gibt es nicht. Dafür bietet PROFAN interessante String-Manipulationen wie @SUBSTR$(S1,N,S2), hiermit kann man Teile eines Strings in ein anderes lesen, oder @TRANSLATE$(S1,S2,S3) um Teilstücke eines Strings durch ein anderes zu ersetzen. + Um Entäuschungen vorzubeugen sei hier gesagt: PROFAN unterstützt keine Grafik (nur Text-Modus), keine Dezimalzahlen (nur Integer) und keine Operatoren (+ - * / ...), hierzu gibt es spezielle Funktionen wie @ADD(a,b) oder @MUL(a,b). @SQR(N) bildet die Quadratzahl (N hoch 2), Wurzel gibt es nicht. Dafür bietet PROFAN interessante String-Manipulationen wie @SUBSTR$(S1,N,S2), hiermit kann man Teile eines Strings in ein anderes lesen, oder @TRANSLATE$(S1,S2,S3) um Teilstücke eines Strings durch ein anderes zu ersetzen. 
- Ich fürchte, daß der folgende Bericht die Nutzbarkeit der Programmiersprache nicht entgültig beurteilen kann, es  + Ich fürchte, daß der folgende Bericht die Nutzbarkeit der Programmiersprache nicht entgültig beurteilen kann, es  
-gibt zu viele unterschiedliche Anforderungen. Welche diese Sprache erfüllt muß jeder selbst herausfinden. +gibt zu viele unterschiedliche Anforderungen. Welche diese Sprache erfüllt muß jeder selbst herausfinden. 
 Sie kann mit PBASIC, PowerBasic, oder Swift!Basic insgesamt sicher nicht mithalten, aber als Script-Sprache  Sie kann mit PBASIC, PowerBasic, oder Swift!Basic insgesamt sicher nicht mithalten, aber als Script-Sprache 
 irgendwo zwischen BATCH-Dateien und Basic mit einer Größe von 18kB vielleicht ein manchmal akzeptabler  irgendwo zwischen BATCH-Dateien und Basic mit einer Größe von 18kB vielleicht ein manchmal akzeptabler 
 Kompromiss. Beim Aufbauen von Text-Screens ist es auf jeden Fall flexibler als DOS und, so scheint mir,  Kompromiss. Beim Aufbauen von Text-Screens ist es auf jeden Fall flexibler als DOS und, so scheint mir, 
 schneller als PBASIC. Da es keine Runtime-Module wie PowerBasic und Swift! benötigt ist es autark.  schneller als PBASIC. Da es keine Runtime-Module wie PowerBasic und Swift! benötigt ist es autark. 
-Allerdings muß man einen neuen Dialekt lernen den ich, für mich, als "Ceisches BASCAL vom DOS" getauft +Allerdings muß man einen neuen Dialekt lernen den ich, für mich, als "Ceisches BASCAL vom DOS" getauft 
 habe.\\ habe.\\
 \\ \\
 PPM.EXE kann nur vom aktuellen Pfad aus gestartet werden, egal ob es im Systempfad (set path=....) liegt. PPM.EXE kann nur vom aktuellen Pfad aus gestartet werden, egal ob es im Systempfad (set path=....) liegt.
-Die Fehlermeldungen sind häufig irreführend, die Ursache liegt ganz wo anders.\\+Die Fehlermeldungen sind häufig irreführend, die Ursache liegt ganz wo anders.\\
  
-Vorsicht mit der Anleitung die dem Programm beigefügt ist. Da die Portfolio-Version eine abgespeckte PC-Version ist wurden die nicht unterstützten Features aus der Anleitung entfernt, nicht aber die Querverweise. Bei vielen Beschreibungen werden Funktionen erwähnt die diese Version nicht unterstützt.+Vorsicht mit der Anleitung die dem Programm beigefügt ist. Da die Portfolio-Version eine abgespeckte PC-Version ist wurden die nicht unterstützten Features aus der Anleitung entfernt, nicht aber die Querverweise. Bei vielen Beschreibungen werden Funktionen erwähnt die diese Version nicht unterstützt.
  
  
Zeile 27: Zeile 27:
 kein FOR... TO... NEXT... kein FOR... TO... NEXT...
 kein PEEK, kein POKE. kein PEEK, kein POKE.
 +
 +
 +In PROFAN müssen alle Variablen (zeitlich) vor der ersten Benutzung deklariert werden. String-Variablen werden durch ein $, LongInt-Variablen durch ein &, Float-Variablen durch ein !, Integer-Variablen durch ein % und Bereichsvariablen durch ein # gekennzeichnet. Mit Ausnahme der Bereichsvariablen sind alle Variablen, die in Prozeduren oder Unterprogrammen deklariert werden nur dort lokal gültig. Der verwandte Speicherplatz wird bei Verlassen des Unterprogrammes/der Prozedur wieder freigegegen. Beispliel:
  
 ===== 1. Systemvariablen ===== ===== 1. Systemvariablen =====
  
-Systemvariablen geben Auskunft über Zustände des Systems, z.B. die aktuelle Cursorposition, das aktuelle Laufwerk, etc. Es gibt zwei Typen von Systemvariablen:+Systemvariablen geben Auskunft über Zustände des Systems, z.B. die aktuelle Cursorposition, das aktuelle Laufwerk, etc. Es gibt zwei Typen von Systemvariablen:
   *$Name - Der Ergebnistyp ist ein String   *$Name - Der Ergebnistyp ist ein String
   *%Name - Der Ergebnistyp ist ein Integer\\   *%Name - Der Ergebnistyp ist ein Integer\\
Zeile 44: Zeile 47:
         *1 - Warnung         *1 - Warnung
         *2 - Fehler         *2 - Fehler
-  *%ErrNumber - enthält die Nummer des zuletzt aufgetretenen Fehlers. Beim Auslesen wird %ERRNUMBER auf 0 zurückgesetzt+  *%ErrNumber - enthält die Nummer des zuletzt aufgetretenen Fehlers. Beim Auslesen wird %ERRNUMBER auf 0 zurückgesetzt
-  *%GetCount - Die Anzahl der Einträge in der ListBox-Liste beginnend bei 0, also immer n+1).+  *%GetCount - Die Anzahl der Einträge in der ListBox-Liste (beginnend bei 0, also immer n+1). 
 Beispiel: Beispiel:
   ClearList   ClearList
Zeile 58: Zeile 62:
         *3 - Pfad nicht gefunden         *3 - Pfad nicht gefunden
         *5 - Zugriff verweigert (ReadOnly?)         *5 - Zugriff verweigert (ReadOnly?)
-        *12 - Ungültiger Dateimodus+        *12 - Ungültiger Dateimodus
         *15 - Laufwerksnummer unzuzulässig         *15 - Laufwerksnummer unzuzulässig
         *16 - Verzeichnis kann nicht gelöscht werden (noch Dateien drin?)         *16 - Verzeichnis kann nicht gelöscht werden (noch Dateien drin?)
-        *17 - RENAME nicht über Laufwerksgrenzen möglich (siehe Rename)+        *17 - RENAME nicht über Laufwerksgrenzen möglich (siehe Rename)
         *18 - Kein weiterer Eintrag (bei @FindFirst/@FindNext)         *18 - Kein weiterer Eintrag (bei @FindFirst/@FindNext)
         *100 - Lesefehler von Diskette/Platte         *100 - Lesefehler von Diskette/Platte
Zeile 70: Zeile 74:
         *105 - Datei nicht zum Schreiben geöffnet (Rewrite oder Append fehlt)         *105 - Datei nicht zum Schreiben geöffnet (Rewrite oder Append fehlt)
         *106 - Falsches Format (bei Input #N,..)         *106 - Falsches Format (bei Input #N,..)
-  *%Key - Der ANSI-Code der zuletzt gedrückten Taste. Anwendung nach den Befehlen WAITKEY und WAITINPUT:+  *%Key - Der ANSI-Code der zuletzt gedrückten Taste. Anwendung nach den Befehlen WAITKEY und WAITINPUT:
  
   WaitInput   WaitInput
     If @Equ(Key,90)     If @Equ(Key,90)
-    Print "Du hast 'Z' gedrückt"+    Print "Du hast 'Z' gedrückt"
   EndIf   EndIf
  
-  *%ParCount - Die Anzahl der beim Programmaufruf übergebenen Kommandozeilen-Parameter. Parameter 0 ist beim Interpreter der Interpreter selber, bei der Runtime das Runtime-Modul und bei einer EXE-Datei die EXE-Datei. Parameter 1 ist bei Interpreter und Runtime das ausgeführte Programm. Da eine EXE-Datei auch als Runtime fungieren kann, ist er dort entweder der Name der PRF-Datei oder ein String, der mit einem der folgenden Zeichen beginnt:+  *%ParCount - Die Anzahl der beim Programmaufruf übergebenen Kommandozeilen-Parameter. Parameter 0 ist beim Interpreter der Interpreter selber, bei der Runtime das Runtime-Modul und bei einer EXE-Datei die EXE-Datei. Parameter 1 ist bei Interpreter und Runtime das ausgeführte Programm. Da eine EXE-Datei auch als Runtime fungieren kann, ist er dort entweder der Name der PRF-Datei oder ein String, der mit einem der folgenden Zeichen beginnt:
 ! " # $ % & ' ( ) * + , - . / ! " # $ % & ' ( ) * + , - . /
 Weitere Hinweise siehe unter @PAR$. Weitere Hinweise siehe unter @PAR$.
-  *%ScanKey - Der Scancode (virtueller Code) der zuletzt gedrückten Taste.+  *%ScanKey - Der Scancode (virtueller Code) der zuletzt gedrückten Taste.
       *Wichtige Scancodes:       *Wichtige Scancodes:
          *16 - Shift          *16 - Shift
Zeile 101: Zeile 105:
 ===== 2. Funktionen ===== ===== 2. Funktionen =====
  
-Eine Funktion gibt einen Wert zurück, der in der Regel von den Parametern der Funktion abhängig ist. Überall da,  +Eine Funktion gibt einen Wert zurück, der in der Regel von den Parametern der Funktion abhängig ist. Überall da,  
-wo in PROFAN Variablen oder konstante Werte (Literale) eingesetzt werden können, dürfen auch Funktionen stehen.  +wo in PROFAN Variablen oder konstante Werte (Literale) eingesetzt werden können, dürfen auch Funktionen stehen.  
-Der Rückgabewert der Funktion sollte der gleiche Typ sein, wie der erwartete Wert.+Der Rückgabewert der Funktion sollte der gleiche Typ sein, wie der erwartete Wert.
 Alle Funktionsnamen in PROFAN beginnen mit einem @. Alle Funktionsnamen in PROFAN beginnen mit einem @.
-Funktionen, deren Funktionsnamen mit dem $ enden, geben in vielen Fällen einen String zurück, die übrigen Funktionen einen numerischen Wert. In einigen Fällen enden auch Vergeleichsfunktionen, die entweder 1 oder 0 zurückgeben mit einem $, um deutlich zu machen, das hiermit Strings verglichen werden.+Funktionen, deren Funktionsnamen mit dem $ enden, geben in vielen Fällen einen String zurück, die übrigen Funktionen einen numerischen Wert. In einigen Fällen enden auch Vergeleichsfunktionen, die entweder 1 oder 0 zurückgeben mit einem $, um deutlich zu machen, das hiermit Strings verglichen werden.
  
-Wenn der Rückgabewert einer Funktion uninteressant ist, kann die Zuweisung auch weggelassen werden. Bis auf die +Wenn der Rückgabewert einer Funktion uninteressant ist, kann die Zuweisung auch weggelassen werden. Bis auf die 
 immer noch notwendigen Klammern, wird die Funktion dann wie ein Befehl verwandt. immer noch notwendigen Klammern, wird die Funktion dann wie ein Befehl verwandt.
 Beispiel: Beispiel:
   @LISTBOX$("Das ist die Liste",0)   @LISTBOX$("Das ist die Liste",0)
 In diesem Fall wird die Listbox nur zum Anschauen angezeigt oder aber das  In diesem Fall wird die Listbox nur zum Anschauen angezeigt oder aber das 
-Ergebnis der Auswahl über die Systemvariable $GETTEXT gelesen.+Ergebnis der Auswahl über die Systemvariable $GETTEXT gelesen.
  
  
Zeile 118: Zeile 122:
      *N : Integer (0 ... 8)      *N : Integer (0 ... 8)
      *Ergebnis: String      *Ergebnis: String
-Der N-te übergebene Parameter in einer selbstdefinierten Funktion (oder Prozedur) als String.+Der N-te übergebene Parameter in einer selbstdefinierten Funktion (oder Prozedur) als String.
  
   *@%(N)   *@%(N)
      *N : Integer (0 ... 8)      *N : Integer (0 ... 8)
      *Ergebnis: Integer      *Ergebnis: Integer
-Der N-te übergebene Parameter in einer selbstdefinierten Funktion (oder Prozedur) als Integer.+Der N-te übergebene Parameter in einer selbstdefinierten Funktion (oder Prozedur) als Integer.
  
   *@&(N)   *@&(N)
      *N : Integer (0 ... 8)      *N : Integer (0 ... 8)
      *Ergebnis: LongInt      *Ergebnis: LongInt
-Der N-te übergebene Parameter in einer selbstdefinierten Funktion (oder Prozedur) als LongInt. +Der N-te übergebene Parameter in einer selbstdefinierten Funktion (oder Prozedur) als LongInt. 
-Der 0. Parameter ist nach Aufruf einer Prozedur oder einem Unterprogramm mit RETURN <Wert>  zurückgegebene Wert.+Der 0. Parameter ist nach Aufruf einer Prozedur oder einem Unterprogramm mit RETURN <Wert>  zurückgegebene Wert.
  
   *@Abs(N)   *@Abs(N)
Zeile 140: Zeile 144:
       *S2 : String       *S2 : String
       *Ergebnis: String       *Ergebnis: String
-Verknüpfung der Strings S1 und S2. S2 wird an S1 angehängt.+Verknüpfung der Strings S1 und S2. S2 wird an S1 angehängt.
  
   *@Add(N1,N2)   *@Add(N1,N2)
Zeile 152: Zeile 156:
       *N2 : Wert       *N2 : Wert
       *Ergebnis: Wert       *Ergebnis: Wert
-Die Werte von N1 und N2 werden mit der AND-Funktion verknüpft. Das Ergebnis ist 0 wenn ein oder beide Werte 0 +Die Werte von N1 und N2 werden mit der AND-Funktion verknüpft. Das Ergebnis ist 0 wenn ein oder beide Werte 0 
 sind. Vergleiche: @OR, @NOT sind. Vergleiche: @OR, @NOT
  
Zeile 161: Zeile 165:
  
   *@Date$(N)   *@Date$(N)
-      *N : Integer - Ausgabeform+      *N : Integer (0..9) Dummy-Wert
       *Ergebnis: String - Datum       *Ergebnis: String - Datum
-Die Funktion ermittelt das aktuelle Datum in verschieden Formaten: +Die Funktion zeigt das aktuelle Datum an (TT.MM.JJ).
-          *0 : Kurzform (z.B"09.04.1993") +
-          *1 : Langform (z.B. "9. April 1993") * +
-         *2 : Langform mit Tag (z.B. "Freitag, der 9. April 1993") *+
  
   *@Del$(S,N1,N2)   *@Del$(S,N1,N2)
Zeile 254: Zeile 255:
      *S : Laufwerkskennzeichen      *S : Laufwerkskennzeichen
      *Ergebnis: String (Pfad)      *Ergebnis: String (Pfad)
-Der Pfad des angegebenen Laufwerks wird ermittelt, wobei "@" für das aktuelle Laufwerk steht.+Der Pfad des angegebenen Laufwerks wird ermittelt, wobei "@" für das aktuelle Laufwerk steht.
 Beispiel: Beispiel:
   Let CPfad$=@GetDir$("C:")   Let CPfad$=@GetDir$("C:")
Zeile 270: Zeile 271:
     *#N: Dateikennung     *#N: Dateikennung
     *Ergebnis: Integer - Attribut     *Ergebnis: Integer - Attribut
-Das Attribut einer Datei wird ermittelt. Der Dateikennung muß zuvor mit ASSIGN einer Datei zugewiesen worden sein. Die Datei darf nicht geöffnet sein. Die Werte für Attribute:+Das Attribut einer Datei wird ermittelt. Der Dateikennung muß zuvor mit ASSIGN einer Datei zugewiesen worden sein. Die Datei darf nicht geöffnet sein. Die Werte für Attribute:
       *$01 = ReadOnly       *$01 = ReadOnly
       *$02 = Hidden       *$02 = Hidden
Zeile 292: Zeile 293:
   *@GetKey$()   *@GetKey$()
     *Ergebnis: String (1 Zeichen)     *Ergebnis: String (1 Zeichen)
-Wartet auf einen Tastendruck und gibt das Ergebnis zurück.+Wartet auf einen Tastendruck und gibt das Ergebnis zurück.
  
   *@GT(N1,N2)   *@GT(N1,N2)
Zeile 309: Zeile 310:
     *S : String     *S : String
     *Ergebnis: Wert (0 oder 1)     *Ergebnis: Wert (0 oder 1)
-Das Ergebnis ist dann 1, wenn die zuletzt gedrückte Taste im String S vorkommt.+Das Ergebnis ist dann 1, wenn die zuletzt gedrückte Taste im String S vorkommt.
 Beispiel: Beispiel:
   WaitKey   WaitKey
Zeile 376: Zeile 377:
     *N2 : Wert     *N2 : Wert
     *Ergebnis: Integer     *Ergebnis: Integer
-ODER-Funktion: Das Ergerbnis ist ungleich 0, wenn N1 ODER N2 (oder beide) ungleich 0 sind. Anders ausgedrückt: Es ist nur dann 0, wenn beide Argumente 0 sind.+ODER-Funktion: Das Ergerbnis ist ungleich 0, wenn N1 ODER N2 (oder beide) ungleich 0 sind. Anders ausgedrückt: Es ist nur dann 0, wenn beide Argumente 0 sind.
  
   *@Ord(S)   *@Ord(S)
Zeile 396: Zeile 397:
     *N : Integer - Scancode     *N : Integer - Scancode
     *Ergebnis: Integer (1 oder 0)     *Ergebnis: Integer (1 oder 0)
-Wenn der letzte Scancode (virtueller Tastencode) mit N (0 bis 254) bereinstimmt, ist das Ergebnis 1, anderenfalls ist es 0. Tabelle der Scancodes siehe unter %SCANKEY.+Wenn der letzte Scancode (virtueller Tastencode) mit N (0 bis 254) übereinstimmt, ist das Ergebnis 1, anderenfalls ist es 0. Tabelle der Scancodes siehe unter %SCANKEY.
  
   *@Sqr(N)   *@Sqr(N)
Zeile 421: Zeile 422:
     *Ergebnis: Substring aus S1     *Ergebnis: Substring aus S1
 Aus dem String S1 wird der N-te Teilstring herausgefiltert,  wobei S2 das Trennzeichen zwischen den Teilstrings ist. Beispiel: Aus dem String S1 wird der N-te Teilstring herausgefiltert,  wobei S2 das Trennzeichen zwischen den Teilstrings ist. Beispiel:
-  LET A$ = "eins,zwei,drei,vier,fnf"+  LET A$ = "eins,zwei,drei,vier,fünf"
   PRINT @SUBSTR$(A$,3,",")   PRINT @SUBSTR$(A$,3,",")
-Das Ergebnis wäre der String "drei". Wird das Trennzeichen im String S1 nicht gefunden, ist das  Ergebnis für den ersten Teilstring der gesamte String und für  alle weiteren der Leerstring. Ist N kleiner als 1, erfolgt eine  Fehlermeldung. Ist N hingegen größer als die Anzahl der vorhandenen Teilstrings, so ist das Ergebnis ein Leerstring.\\+Das Ergebnis wäre der String "drei". Wird das Trennzeichen im String S1 nicht gefunden, ist das  Ergebnis für den ersten Teilstring der gesamte String und für  alle weiteren der Leerstring. Ist N kleiner als 1, erfolgt eine  Fehlermeldung. Ist N hingegen größer als die Anzahl der vorhandenen Teilstrings, so ist das Ergebnis ein Leerstring.\\
 HINWEIS: S2 darf auch aus mehreren Zeichen bestehen! HINWEIS: S2 darf auch aus mehreren Zeichen bestehen!
  
   *@Time$(N)   *@Time$(N)
-    *N : Integer (0 .. 1) - Unterfunktion+    *N : Integer (0 .. 9Dummy-Wert
     *Ergebnis: String     *Ergebnis: String
-Die Funktion ermittelt die aktuelle Uhrzeit:\\ +Die Funktion ermittelt die aktuelle Uhrzeit in Stunden und Minuten (z.B. "23:45")
-N = 0 : Sunden und Minuten (z.B. "23:45")\\ +
-N = 1 : Sekunden und 100stel Sekunden (z.B. "39.67")\\+
  
   *@Translate$(S1,S2,S3)   *@Translate$(S1,S2,S3)
Zeile 443: Zeile 442:
     *S : String     *S : String
     *Ergebnis: String     *Ergebnis: String
-Die führenden und endenden Leerzeichen eines Strings werden abgeschnitten.+Die führenden und endenden Leerzeichen eines Strings werden abgeschnitten.
  
   *@Upper$(S)   *@Upper$(S)
     *S : String     *S : String
     *Ergebnis: String     *Ergebnis: String
-Der String S wird komplett in Großbuchstaben umgewandelt, wobei die deutschen Umlaute korrekt berücksichtigt werden.+Der String S wird komplett in Großbuchstaben umgewandelt, wobei die deutschen Umlaute korrekt berücksichtigt werden.
  
   *@Val(S)   *@Val(S)
Zeile 475: Zeile 474:
   *AddFiles S   *AddFiles S
     *S : String - Dateimaske     *S : String - Dateimaske
-Mit diesem Befehl wird eine Dateiliste der Listbox-Liste hinzugefügt+Mit diesem Befehl wird eine Dateiliste der Listbox-Liste hinzugefügt
 Beispiel: Beispiel:
   ClearList   ClearList
Zeile 482: Zeile 481:
   *AddString S   *AddString S
     *S : String     *S : String
-Mit diesem Befehl wird der String der Listbox-Liste hinzugefügt.+Mit diesem Befehl wird der String der Listbox-Liste hinzugefügt.
 Beispiel: Beispiel:
   ClearList   ClearList
Zeile 490: Zeile 489:
   *Append #N   *Append #N
     *N: Wert - Dateinummer (1 .. 8)     *N: Wert - Dateinummer (1 .. 8)
-Die Datei #N wird geöffnet, um Daten anzufügen. Tritt ein Fehler auf, ist %IoResult größer als 0.+Die Datei #N wird geöffnet, um Daten anzufügen. Tritt ein Fehler auf, ist %IoResult größer als 0.
 Beispiel: Beispiel:
   Assign #1,"TEST.DAT"   Assign #1,"TEST.DAT"
Zeile 514: Zeile 513:
  
   *Beep   *Beep
-Gibt einen Signalton aus. Zur Tonausgabe siehe auch unter SOUND und PLAY!+Gibt einen Signalton aus.
  
   *ChDir S   *ChDir S
Zeile 520: Zeile 519:
 Es wird zum Verzeichnis S gewechselt. Enthält S eine Laufwerksangabe, so wird auch das aktuelle Laufwerk gewechselt! Es wird zum Verzeichnis S gewechselt. Enthält S eine Laufwerksangabe, so wird auch das aktuelle Laufwerk gewechselt!
 Beispiel: Beispiel:
-  ChDir "D:\TABELLEN\GRAFIK+  ChDir "A:\PROFAN\DATEN
-  LoadSizedBmp "Umsatz",10,30-400,600;1+  AddFiles "*.DAT"
  
   *ClearList   *ClearList
-Die ListBox-Liste wird gelöscht, d.h. der Zeiger wird auf den Anfang gesetzt. Mit AddFiles oder AddString wird die Liste gefüllt.+Die ListBox-Liste wird gelöscht, d.h. der Zeiger wird auf den Anfang gesetzt. Mit AddFiles oder AddString wird die Liste gefüllt.
  
   *Close #N   *Close #N
Zeile 539: Zeile 538:
   *Cls   *Cls
 Löscht den Bildschirm. Löscht den Bildschirm.
- 
-  *Color C1,C2 
-    *C1 : Wert - Textfarbe (0 .. 15) 
-    *C2 : Wert - Hintegrund (0 .. 15) 
-Die Farben des Textmodus (PRINT, TBOX, INPUT) werden festgelegt. Die Farben entsprechen den 16 Farben von MS-DOS  
-im Textmodus. 
-Beispiel: 
-  Color 15,0 
-  Print "Hugo was here!" 
- 
-  *Copy S1 > S2 
-    *S1 : String - Quelldatei 
-    *S2 : String - Zieldatei 
-Die Quelldatei wird kopiert und erhält Zieldatei als Namen. Beide Strings können auch Pfadangaben enthalten.  
-Wildcards sind jedoch nicht gestattet.  
-Beispiel: 
-  COPY "C:\START.BAT" >  "D:\BAK\START.BAK" 
  
   *Dec VAR   *Dec VAR
Zeile 563: Zeile 545:
   *Declare VAR [,VAR[,VAR]...]   *Declare VAR [,VAR[,VAR]...]
     *VAR : Variablen-Name     *VAR : Variablen-Name
-In PROFAN müssen alle Variablen (zeitlich) vor der ersten Benutzung deklariert werden. String-Variablen werden durch ein $, LongInt-Variablen durch ein &, Float-Variablen durch ein !, Integer-Variablen durch ein % und Bereichsvariablen durch ein # gekennzeichnet.+In PROFAN müssen alle Variablen (zeitlich) vor der ersten Benutzung deklariert werden. String-Variablen werden durch ein $, LongInt-Variablen durch ein &, Float-Variablen durch ein !, Integer-Variablen durch ein % und Bereichsvariablen durch ein # gekennzeichnet.
  Mit Ausnahme der Bereichsvariablen sind alle Variablen, die in Prozeduren oder Unterprogrammen deklariert werden   Mit Ausnahme der Bereichsvariablen sind alle Variablen, die in Prozeduren oder Unterprogrammen deklariert werden 
-nur dort lokal gültig. Der verwandte Speicherplatz wird bei Verlassen des Unterprogrammes/der Prozedur wieder freigegegen.+nur dort lokal gültig. Der verwandte Speicherplatz wird bei Verlassen des Unterprogrammes/der Prozedur wieder freigegegen.
 Beispliel: Beispliel:
   Decalare XPos%,YPos%,Text$   Decalare XPos%,YPos%,Text$
Zeile 581: Zeile 563:
   *FileMode N   *FileMode N
     *N: Integer - Filemodus (siehe DOS-Dokumentation)     *N: Integer - Filemodus (siehe DOS-Dokumentation)
-Der Filemodus der für das Öffnen von Dateien (mit RESET, REWRITE oder OPENRW) und den Zugriff auf diesen gilt, wird eingestellt. Unter allen DOS-Versionen sind folgende Filemodi vorhanden:+Der Filemodus der für das Öffnen von Dateien (mit RESET, REWRITE oder OPENRW) und den Zugriff auf diesen gilt, wird eingestellt. Unter allen DOS-Versionen sind folgende Filemodi vorhanden:
       *0:  Nur lesen       *0:  Nur lesen
       *1:  Nur schreiben       *1:  Nur schreiben
Zeile 588: Zeile 570:
  
   *Font N   *Font N
-    *N : Wert - Font - Nummer (0 .. 2) +Wird erkanntist beim Portfolio aber wirkungslos.
-Der Font N fr den Textmodus (Textausgabe mit PRINT) wird gewählt: +
-      * 0 : System-Font (ANSI-Zeichensatz) +
-      *1 : OEM-Font (ASCII-Zeichensatz) +
-      *2 : ANSI-Font +
-Ist unter DOS wirkungslos. Damit die Zeichen unter Windows richtig angezeigt werdensolle am Anfang des Programmes FONT 1 eingestellt werden.+
  
   *If N  ... [ElseIf N ...] [Else ... ]    *If N  ... [ElseIf N ...] [Else ... ] 
   *EndIf   *EndIf
     *N : Wert . Bedingungsausdruck     *N : Wert . Bedingungsausdruck
-Die zwischen IF und ENDIF stehenden Zeilen werden nur dann ausgeführt, wenn  N ungleich 0 ist.+Die zwischen IF und ENDIF stehenden Zeilen werden nur dann ausgeführt, wenn  N ungleich 0 ist.
 Beispiel: Beispiel:
   If @Equ(Test%,78)   If @Equ(Test%,78)
Zeile 604: Zeile 581:
  Print "-------------"  Print "-------------"
   EndIf   EndIf
-Auch eine Abrage auf mehrere Bedingungen (z.B. bei der Auswertung eines Menüs) ist mit ELSEIF möglich. Sobald eine Bedingung erfüllt ist, wird der zugehörige Programmteil abgearbeitet und anschließend mit der Zeile nach dem ENDIF fortgefahren:+Auch eine Abrage auf mehrere Bedingungen (z.B. bei der Auswertung eines Menüs) ist mit ELSEIF möglich. Sobald eine Bedingung erfüllt ist, wird der zugehörige Programmteil abgearbeitet und anschließend mit der Zeile nach dem ENDIF fortgefahren:
   IF @Lt(A%,1)   IF @Lt(A%,1)
- COLOR 1,15 
  PRINT "A ist kleiner als 1"  PRINT "A ist kleiner als 1"
   ELSEIF @Equ(A%,1)   ELSEIF @Equ(A%,1)
- COLOR 2,15 
  PRINT "A ist gleich 1"  PRINT "A ist gleich 1"
   ELSEIF @Equ(A%,2)   ELSEIF @Equ(A%,2)
- COLOR 3,15 
  PRINT "A ist gleich 2"  PRINT "A ist gleich 2"
   ELSE   ELSE
- PRINT "A ist gr”áer als 2"+ PRINT "A ist größer als 2"
   ENDIF   ENDIF
-ACHTUNG: Hinter ELSEIF muß ein Bedingungsausdruck stehen. Fehlt dieser wrde der Interpreter das ELSEIF zwar wie ELSE behandeln, aber das Runtime-Modul würde den Fehler merken und mit einer Fehlermeldung "Zu wenig Parameter" abbrechen.+ACHTUNG: Hinter ELSEIF muß ein Bedingungsausdruck stehen. Fehlt dieser würde der Interpreter das ELSEIF zwar wie ELSE behandeln, aber das Runtime-Modul würde den Fehler merken und mit einer Fehlermeldung "Zu wenig Parameter" abbrechen.
  
   *IfNot N ... [ElseIf N ... ] [Else ...]    *IfNot N ... [ElseIf N ... ] [Else ...] 
   *EndIf   *EndIf
-Als Kurzform für If @Not(N) kann auch das kürzere (und schnellere) IfNot verwandt werden:+Als Kurzform für If @Not(N) kann auch das kürzere (und schnellere) IfNot verwandt werden:
  IfNot @Equ(Test%,78)  IfNot @Equ(Test%,78)
  Print "Test% ist nicht 78!"  Print "Test% ist nicht 78!"
Zeile 657: Zeile 631:
     *S   : String     *S   : String
 Einer zuvor mit DECLARE declarierten Variablen wird ein Wert zugewiesen. Das LET darf nicht weggelassen werden! Einer zuvor mit DECLARE declarierten Variablen wird ein Wert zugewiesen. Das LET darf nicht weggelassen werden!
-Beim LET-Befehl für Stringvariablen können nun - ähnlich wie beim PRINT-Befehl - mehrere Stringausdrücke durch Semikolon bzw. Komma getrennt angegeben werden. Werden zwei Stringausdrücke mit einem Komma getrennt, wird ein Leerzeichen eingefügt. Diese Methode ist einfacher und deutlich (!) schneller als das Zusammenfügen von Strings mittels der @ADD$-Funktion.+Beim LET-Befehl für Stringvariablen können nun - ähnlich wie beim PRINT-Befehl - mehrere Stringausdrücke durch Semikolon bzw. Komma getrennt angegeben werden. Werden zwei Stringausdrücke mit einem Komma getrennt, wird ein Leerzeichen eingefügt. Diese Methode ist einfacher und deutlich (!) schneller als das Zusammenfügen von Strings mittels der @ADD$-Funktion.
 Beispiel: Beispiel:
   LET Text$ = "Du hast",@Str$(Score%),"Punkte erzielt!"   LET Text$ = "Du hast",@Str$(Score%),"Punkte erzielt!"
-HINWEIS: Die automatische Typumwandlung funktioniert bei einfachen Variablen. Bei Funktionen, die einen numerischen Wert zurükgegeben, wird nicht immer automatisch umgewandelt, daher ist hier immer die Funktion @Str$ zu verwenden!+HINWEIS: Die automatische Typumwandlung funktioniert bei einfachen Variablen. Bei Funktionen, die einen numerischen Wert zurükgegeben, wird nicht immer automatisch umgewandelt, daher ist hier immer die Funktion @Str$ zu verwenden!
  
   *ListBoxItem$ N = S   *ListBoxItem$ N = S
     *N : Integer - Index (0 .. 999)     *N : Integer - Index (0 .. 999)
     *S : String     *S : String
-Der String S wird wird an Position N in die ListBox-Liste bernommen.+Der String S wird wird an Position N in die ListBox-Liste übernommen.
  
   *Locate X,Y   *Locate X,Y
     *X : Wert - Zeile     *X : Wert - Zeile
     *Y : Wert - Spalte     *Y : Wert - Spalte
-Der nächste PRINT- oder INPUT-Befehl positioniert auf Zeile X, Spalte Y.  +Der nächste PRINT- oder INPUT-Befehl wird auf Zeile X, Spalte Y positioniert
-Wirkt nur für Textmodus-Befehle.+
  
   *MkDir S   *MkDir S
Zeile 677: Zeile 650:
 Das Verzeichnis S wird angelegt. Im Falle eines Fehlers hat %IORESULT einen von 0 verschiedenen Wert.  Das Verzeichnis S wird angelegt. Im Falle eines Fehlers hat %IORESULT einen von 0 verschiedenen Wert. 
 Beispiel: Beispiel:
-  MkDir "C:\WINDOWS\TEST"+  MkDir "C:\DOS\TEST"
 Siehe auch: ChDir, RmDir Siehe auch: ChDir, RmDir
  
   *NumWidth N   *NumWidth N
     *N: Integer - Mindestweite     *N: Integer - Mindestweite
-Mindestweite der Ausgabe numerischer Werte. Dieser Wert wird auch von der @STR$-Funktion und dem Befehl DrawText verwandt. Ist der Ausgabestring kürzer wird er mit führenden Leerzeichen aufgefüllt. Standarteinstellung ist 0.+Mindestweite der Ausgabe numerischer Werte. Dieser Wert wird auch von der @STR$-Funktion und dem Befehl DrawText verwandt. Ist der Ausgabestring kürzer wird er mit führenden Leerzeichen aufgefüllt. Standarteinstellung ist 7.
 Siehe auch: Decimals Siehe auch: Decimals
  
Zeile 695: Zeile 668:
 Die Aufrufparameter einer Prozedur werden Variablen zugewiesen, die innerhalb der Prozedur bekannt sind.  Die Aufrufparameter einer Prozedur werden Variablen zugewiesen, die innerhalb der Prozedur bekannt sind. 
 Ein Beispiel findet sich unter PROC. Die Anzahl der Variablen sollte gleich der Anzahl der Übergabeparameter sein;  Ein Beispiel findet sich unter PROC. Die Anzahl der Variablen sollte gleich der Anzahl der Übergabeparameter sein; 
-überprft wird dieses aber ebensowenig, wie die Datentypen. Gegebenenfalls erfolgt eine automatische Umwandlung.+überprft wird dieses aber ebensowenig, wie die Datentypen. Gegebenenfalls erfolgt eine automatische Umwandlung.
 Siehe auch: Proc Siehe auch: Proc
  
Zeile 701: Zeile 674:
     *N : Wert - Dateikennzeichen (1..8)     *N : Wert - Dateikennzeichen (1..8)
     *f : druckbarer Ausdruck     *f : druckbarer Ausdruck
-Der Ausdruck, bzw. die Ausdrücke werden in die mit N bezeichnete Datei geschrieben. Steht zwischen den Ausdrücken ein Semikolon, so werden sie direkt aneinander gehängt, bei einem Komma wird ein Leerzeichen eingefügt.+Der Ausdruck, bzw. die Ausdrücke werden in die mit N bezeichnete Datei geschrieben. Steht zwischen den Ausdrücken ein Semikolon, so werden sie direkt aneinander gehängt, bei einem Komma wird ein Leerzeichen eingefügt.
 Siehe auch unter ASSIGN, REWRITE, APPEND und CLOSE. Siehe auch unter ASSIGN, REWRITE, APPEND und CLOSE.
  
   *Print f;f,f...   *Print f;f,f...
     *f : druckbarer Ausdruck     *f : druckbarer Ausdruck
-Der Ausdruck, bzw. die Ausdrücke werden auf den Bildschirm geschrieben. Steht zwischen den Ausdrücken ein Semikolon, so werden sie direkt aneinander gehängt, bei einem Komma wird ein Leerzeichen eingefügt. Siehe auch unter LOCATE. Beispiel:+Der Ausdruck, bzw. die Ausdrücke werden auf den Bildschirm geschrieben. Steht zwischen den Ausdrücken ein Semikolon, so werden sie direkt aneinander gehängt, bei einem Komma wird ein Leerzeichen eingefügt. Siehe auch unter LOCATE. Beispiel:
   Print "Dies ist der",N%;". Test"   Print "Dies ist der",N%;". Test"
  
Zeile 713: Zeile 686:
     *<Name> : Name der Prozedur     *<Name> : Name der Prozedur
 Eine Prozedur wird definiert, die im nachfolgenden Programm wie ein neuer Befehl verwandt werden kann. Über den  Eine Prozedur wird definiert, die im nachfolgenden Programm wie ein neuer Befehl verwandt werden kann. Über den 
-PARAMETERS-Befehl werden die übergebenen Parameter eingelesen.+PARAMETERS-Befehl werden die übergebenen Parameter eingelesen.
 Beispiel: Beispiel:
   PROC Wiederhole   PROC Wiederhole
Zeile 725: Zeile 698:
   ENDPROC   ENDPROC
   Wiederhole "Testtext",10   Wiederhole "Testtext",10
-Die in der Prozedur über PARAMETERS oder DECLARE deklarierten Variablen sind nur innerhalb der Prozedur bekannt (lokal). Alle Variablen, die außerhalb (oberhalb) der Prozedur definiert wurden sind in der Prozedur auch bekannt (wie in PASCAL). Die Prozedur kann auch schon vor Erreichen der Zeile ENDPROC über RETURN verlassen werden, wobei dann die +Die in der Prozedur über PARAMETERS oder DECLARE deklarierten Variablen sind nur innerhalb der Prozedur bekannt (lokal). Alle Variablen, die außerhalb (oberhalb) der Prozedur definiert wurden sind in der Prozedur auch bekannt (wie in PASCAL). Die Prozedur kann auch schon vor Erreichen der Zeile ENDPROC über RETURN verlassen werden, wobei dann die 
 Übergabe eines Wertes an das aufrufende Programm möglich ist. Übergabe eines Wertes an das aufrufende Programm möglich ist.
  
Zeile 731: Zeile 704:
     *#N1: Dateikennung (1 - 8)     *#N1: Dateikennung (1 - 8)
     *N2: Integer - zu schreibender Wert (0 ... 255)     *N2: Integer - zu schreibender Wert (0 ... 255)
-Das Byte N2 wird an die aktuelle Position des Dateizeigers in die Datei mit der Kennung #N1 geschrieben und der Dateizeiger um 1 weitergesetzt. Befindet sich dadurch der Zeiger hinter dem Ende der Datei, liefert @EOF(#N) den Wert 1. Durch weitere Schreiboperationen mit PUTBYTE würde die Datei vergrößert werden.+Das Byte N2 wird an die aktuelle Position des Dateizeigers in die Datei mit der Kennung #N1 geschrieben und der Dateizeiger um 1 weitergesetzt. Befindet sich dadurch der Zeiger hinter dem Ende der Datei, liefert @EOF(#N) den Wert 1. Durch weitere Schreiboperationen mit PUTBYTE würde die Datei vergrößert werden.
 Siehe auch: @GetByte Siehe auch: @GetByte
  
   *Randomize   *Randomize
-Sorgt dafür, daß die Zufallszahlen (@RND) auch wirklich zufälligen Charakter haben.+Sorgt dafür, daß die Zufallszahlen (@RND) auch wirklich zufälligen Charakter haben.
  
  
   *Rem ...   *Rem ...
-Alles was dahinter steht, ist Kommentar. REM steht immer am Anfang der Kommentarzeile. Für Kommentare hinter anderen Befehlen ist das ' zu benutzen.+Alles was dahinter steht, ist Kommentar. REM steht immer am Anfang der Kommentarzeile. Für Kommentare hinter anderen Befehlen ist das ' zu benutzen.
  
  
Zeile 764: Zeile 737:
  
   *Return [<Wert>]   *Return [<Wert>]
-Beenden einer Prozedur. Es ist möglich einen Wert zurückzugeben. Dieser steht dann in @$(0), @%(0), @&(0) und/oder @!(0):+Beenden einer Prozedur. Es ist möglich einen Wert zurückzugeben. Dieser steht dann in @$(0), @%(0), @&(0) und/oder @!(0):
   PROC Test   PROC Test
  Print "Das ist ein Test"  Print "Das ist ein Test"
Zeile 771: Zeile 744:
   Print "Im Hauptprogramm"   Print "Im Hauptprogramm"
   Test   Test
-  Print "Wieder zurck! Ergebnis:",@$(0) +  Print "Wieder zurück! Ergebnis:",@$(0) 
-Der zurückgegebene Wert darf auch eine lokale Variable sein.  WICHTIG: Auch wenn eine Prozedur mit RETURN verlassen wird, muß die Definition der Prozedur mit ENDPROC abgeschlossen werden.+Der zurückgegebene Wert darf auch eine lokale Variable sein.  WICHTIG: Auch wenn eine Prozedur mit RETURN verlassen wird, muß die Definition der Prozedur mit ENDPROC abgeschlossen werden.
  
   *Rewrite #N   *Rewrite #N
Zeile 788: Zeile 761:
 Das Verzeichnis S wird gelöscht. Enthält es noch Dateien oder Unterverzeichnisse, kann es nicht gelöscht werden. Bei erfolgreicher Operation hat %IORESULT den Wert 0. Das Verzeichnis S wird gelöscht. Enthält es noch Dateien oder Unterverzeichnisse, kann es nicht gelöscht werden. Bei erfolgreicher Operation hat %IORESULT den Wert 0.
 Sie auch: ChDir MkDir Sie auch: ChDir MkDir
- 
-  *Run S 
-    *S : String - Programmname 
-Das Programm S wird aufgerufen und das aufrufende Profanprogramm beendet. Es können alle Windowsprogramme - auch mit Parametern - aufgerufen werden. 
-Beispiele: 
-  Run "NOTEPAD HILFE.TXT" 
-  Run "E:\PROFAN\PROFAN DEMO.RGH" 
-  Run "WRITE" 
  
   *Seek #N,A   *Seek #N,A
Zeile 806: Zeile 771:
     *N: Integer - Errorlevel     *N: Integer - Errorlevel
 Je nach Wunsch kann der Errorlevel auf einen der möglichen Werte gesetzt werden. Damit wird das Verhalten des Systems bei Auftreten eines Fehlers oder einer Warnung definiert: Je nach Wunsch kann der Errorlevel auf einen der möglichen Werte gesetzt werden. Damit wird das Verhalten des Systems bei Auftreten eines Fehlers oder einer Warnung definiert:
-      *2 - Für ganz Vorsichtige: Warnungen werden wie Fehler behandelt und führen zu einer Fehlermeldung mit Programmabbruch. +      *2 - Für ganz Vorsichtige: Warnungen werden wie Fehler behandelt und führen zu einer Fehlermeldung mit Programmabbruch. 
-      *1 - Für die Programmentwicklung: Auch Warnungen werden ausgeben, aber das Programm läuft auf Wunsch weiter.+      *1 - Für die Programmentwicklung: Auch Warnungen werden ausgeben, aber das Programm läuft auf Wunsch weiter.
       *0 - Der Normalzustand: Warnungen werden nicht angezeigt. Diesen Errorlevel sollte man bei einem fertigen Programm verwenden.       *0 - Der Normalzustand: Warnungen werden nicht angezeigt. Diesen Errorlevel sollte man bei einem fertigen Programm verwenden.
-      *-1 - Fast schon kriminell: Auch Fehlermeldungen werden übergangen. Das kann unter Umständen zu einem Windowsfehler oder Absturz des Systemes mit Datenverlust führen.+      *-1 - Fast schon kriminell: Auch Fehlermeldungen werden übergangen. Das kann unter Umständen zu einem DOS-Fehler oder Absturz des Systemes mit Datenverlust führen.
 Warnungen treten auf, wenn ein Ausdruck nicht als numerischer Wert zu interpretieren ist oder z.B. eine Bilddatei nicht gefunden wird ... Warnungen treten auf, wenn ein Ausdruck nicht als numerischer Wert zu interpretieren ist oder z.B. eine Bilddatei nicht gefunden wird ...
  
Zeile 823: Zeile 788:
       *$20 = Archiv       *$20 = Archiv
 Werden mehrer Attribute verwandt, so sind sie zu addieren. Werden mehrer Attribute verwandt, so sind sie zu addieren.
- 
-  *Shell S 
-    *#S : String - Programmname 
-Das Programm S wird aufgerufen und das aufrufende Profanprogramm läuft weiter. Es können alle Windowsprogramme - auch mit Parametern - aufgerufen werden. 
-Beispiel: 
-  Shell "NOTEPAD HILFE.TXT" 
-Vergleiche auch: Run 
  
   *StrWidth N   *StrWidth N
     *N: Integer (Mindestweite)     *N: Integer (Mindestweite)
-Die Mindest-Ausgabeweite für Strings (mittels des PRINT-Befehles) wird festgelegt. Strings, die kürzer als N sind, werden entsprechend mit vorangestellten Leerzeichen verlängert. Voreingestellt ist der Wert 0 (= "normales" Verhalten der Strings).+Die Mindest-Ausgabeweite für Strings (mittels des PRINT-Befehles) wird festgelegt. Strings, die kürzer als N sind, werden entsprechend mit vorangestellten Leerzeichen verlängert. Voreingestellt ist der Wert 0 (= "normales" Verhalten der Strings).
  
   *Sub VAR,N   *Sub VAR,N
Zeile 877: Zeile 835:
  ... - ...  ... - ...
  123 - F12  123 - F12
-Die übrigen lassen sich durch Ausprobieren mit folgendem Programm leicht austesten:+Die übrigen lassen sich durch Ausprobieren mit folgendem Programm leicht austesten:
   Cls   Cls
   While 1    'Endlosschleife!   While 1    'Endlosschleife!
Zeile 905: Zeile 863:
   Wend   Wend
  
-========================= +===== Fehlermeldungen =====
 Folgende Fehlermeldungen und Warnungen werden vom Interpreter bzw. Compiler und Runtime-System erzeugt: Folgende Fehlermeldungen und Warnungen werden vom Interpreter bzw. Compiler und Runtime-System erzeugt:
  
-Programm-Struktur +^Programm-Struktur^^ 
------------------ +|100 :Systemvariable unbekannt:| 
-100 :  Systemvariable unbekannt: +|101 :| Funktion unbekannt:| 
-101 :  Funktion unbekannt: +|102 :| Befehl unbekannt:| 
-102 :  Befehl unbekannt: +|103 :| Integer-Variable erwartet!| 
-103 :  Integer-Variable erwartet! +|104 :Dateikennung erwartet!| 
-104 :  Dateikennung erwartet! +|105 :| Tabellenkennung erwartet!| 
-105 :  Tabellenkennung erwartet! +|106 :| ENDIF bzw. ELSE nicht gefunden!| 
-106 :  ENDIF bzw. ELSE nicht gefunden! +|107 :| ENDIF nicht gefunden!| 
-107 :  ENDIF nicht gefunden! +|108 :| Zu tiefe WHILE-Verschachtelung!| 
-108 :  Zu tiefe WHILE-Verschachtelung! +|109 :| ENDWHILE bzw. WHILE nicht gefunden!| 
-109 :  ENDWHILE bzw. WHILE nicht gefunden! +|110 :| WHILE fehlt!| 
-110 :  WHILE fehlt! +|111 :| GOSUB/PROC fehlt!| 
-111 :  GOSUB/PROC fehlt! +|112 :| PROC fehlt!| 
-112 :  PROC fehlt! +|113 :| Label nicht gefunden:| 
-113 :  Label nicht gefunden: +|114 :| Zu tiefe GOSUB/PROC-Verschachtelung!| 
-114 :  Zu tiefe GOSUB/PROC-Verschachtelung! +|115 :| ENDPROC nicht gefunden!|
-115 :  ENDPROC nicht gefunden!+
  
-Ungltige/fehlende Parameter +^Ungültige/fehlende Parameter^^ 
----------------------------- +|200 :| Ungültiger Funktionswert!| 
-200 :  Ungltiger Funktionswert! +|201 :| Division durch 0!| 
-201 :  Division durch 0! +|204 :String-Index ist < 1 !| 
-204 :  String-Index ist < 1 ! +|205 :Substring-Nr ist < 1 !| 
-205 :  Substring-Nr ist < 1 ! +|206 :So viele Elemente sind nicht da!| 
-206 :  So viele Elemente sind nicht da! +|207 :Bereichsgrenze überschritten:| 
-207 :  Bereichsgrenze berschritten+|208 :Kommandozeilenparameter fehlt!| 
-208 :  Kommandozeilenparameter fehlt! +|209 :Datei nicht gefunden:| 
-209 :  Datei nicht gefunden: +|210 :Dateinummer nicht im erlaubten Bereich!| 
-210 :  Dateinummer nicht im erlaubten Bereich! +|211 :Parameterzahl muß zwischen 0 und 8 liegen!| 
-211 :  Parameterzahl muá zwischen 0 und 8 liegen! +|212 :Zu wenig Parameter!| 
-212 :  Zu wenig Parameter! +|213 :Funktionsargument fehlt!| 
-213 :  Funktionsargument fehlt! +|214 :Keine Zahl:| 
-214 :  Keine Zahl: +|215 :Variable nicht deklariert:| 
-215 :  Variable nicht declariert+|216 :Falscher Parametertyp:| 
-216 :  Falscher Parametertyp: +|217 :Speicher für Integer-Variablen erschöpft!| 
-217 :  Speicher fr Integer-Variablen ersch”pft+|218 :Speicher für LongInt-Variablen erschöpft!| 
-218 :  Speicher fr LongInt-Variablen ersch”pft+|219 :Speicher für String-Variablen erschöpft!| 
-219 :  Speicher fr String-Variablen ersch”pft+|221 :| Während der Druckausgabe verboten:| 
-221 :  W„hrend der Druckausgabe verboten: +|222 :Box nicht innerhalb des Fensters!| 
-222 :  Box nicht innerhalb des Fensters! +|231 :Es sind lediglich 0 bis 999 Elemente erlaubt!| 
-231 :  Es sind lediglich 0 bis 999 Elemente erlaubt! +|232 :Zu viele Elemente!| 
-232 :  Zu viele Elemente! +|233 :Das Element gibt es nicht!| 
-233 :  Das Element gibt es nicht! +|238 :Stringende fehlt!|
-238 :  Stringende fehlt!+
  
-IO-Fehler +^IO-Fehler^^ 
---------- +|300 :Datei kann nicht gelesen werden:| 
-300 :  Datei kann nicht gelesen werden: +|301 :Datei kann nicht erzeugt werden:| 
-301 :  Datei kann nicht erzeugt werden: +|302 :Fehler beim Lesen:| 
-302 :  Fehler beim Lesen: +|303 :Fehler beim Schreiben:|
-303 :  Fehler beim Schreiben:+
  
-Sonstige Fehler +^Sonstige Fehler^^ 
---------------- +|900 :Dieser Befehl ist in der Sharewareversion nicht vorhanden!| 
-900 :  Dieser Befehl ist in der Sharewareversion nicht vorhanden! +|901 :Nur 999 Zeilen sind erlaubt!| 
-901 :  Nur 999 Zeilen sind erlaubt! +|902 :Zeile zu lang (max. 127 Zeichen)!| 
-902 :  Zeile zu lang (max. 127 Zeichen)! +|905 :Keine gültige PROFAN Datei!| 
-905 :  Keine gltige PROFANý Datei! +|906 :Programmdatei fehlerhaft!|
-906 :  Programmdatei fehlerhaft!+
software/diy/andere/profan.1139938178.txt.gz · Zuletzt geändert: 14/02/2006 00:02 (Externe Bearbeitung)