software:diy:andere:profan
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
software:diy:andere:profan [14/02/2006 19:02] – ups uxt | software:diy:andere:profan [08/01/2023 19:01] (aktuell) – Download-Abschnitt angelegt bttr | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Profan v4.0 ====== | ====== Profan v4.0 ====== | ||
- | Als ich zuerst davon hörte war ich verwundert, eine Programmiersprache | + | Als ich zuerst davon hörte war ich verwundert, eine Programmiersprache |
- | Er sagte PROFAN sei eine praktische Programmiersprache, | + | Er sagte PROFAN sei eine praktische Programmiersprache, |
Open-Source Quell-dateien. | Open-Source Quell-dateien. | ||
- | | + | |
- | Halb BASIC, halb PASCAL mit C-Ansätzen, | + | Halb BASIC, halb PASCAL mit C-Ansätzen, |
- | Um Entäuschungen vorzubeugen sei hier gesagt: PROFAN | + | Um Entäuschungen vorzubeugen sei hier gesagt: PROFAN |
- | | + | |
- | gibt zu viele unterschiedliche Anforderungen. Welche diese Sprache | + | gibt zu viele unterschiedliche Anforderungen. Welche diese Sprache |
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 | + | Allerdings muß man einen neuen Dialekt lernen den ich, für mich, als " |
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 | + | Die Fehlermeldungen sind häufig |
- | Vorsicht mit der Anleitung die dem Programm | + | Vorsicht mit der Anleitung die dem Programm |
Zeile 29: | Zeile 29: | ||
- | In PROFAN | + | In PROFAN |
===== 1. Systemvariablen ===== | ===== 1. Systemvariablen ===== | ||
- | Systemvariablen geben Auskunft | + | Systemvariablen geben Auskunft |
*$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 47: | 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). | ||
Zeile 62: | Zeile 62: | ||
*3 - Pfad nicht gefunden | *3 - Pfad nicht gefunden | ||
*5 - Zugriff verweigert (ReadOnly?) | *5 - Zugriff verweigert (ReadOnly?) | ||
- | *12 - Ungültiger | + | *12 - Ungültiger |
*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 | + | *17 - RENAME nicht über Laufwerksgrenzen möglich (siehe Rename) |
*18 - Kein weiterer Eintrag (bei @FindFirst/ | *18 - Kein weiterer Eintrag (bei @FindFirst/ | ||
*100 - Lesefehler von Diskette/ | *100 - Lesefehler von Diskette/ | ||
Zeile 74: | 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 | + | *%Key - Der ANSI-Code der zuletzt |
WaitInput | WaitInput | ||
If @Equ(Key, | If @Equ(Key, | ||
- | Print "Du hast ' | + | Print "Du hast ' |
EndIf | EndIf | ||
- | *%ParCount - Die Anzahl der beim Programmaufruf | + | *%ParCount - Die Anzahl der beim Programmaufruf |
! " # $ % & ' ( ) * + , - . / | ! " # $ % & ' ( ) * + , - . / | ||
Weitere Hinweise siehe unter @PAR$. | Weitere Hinweise siehe unter @PAR$. | ||
- | *%ScanKey - Der Scancode (virtueller Code) der zuletzt | + | *%ScanKey - Der Scancode (virtueller Code) der zuletzt |
*Wichtige Scancodes: | *Wichtige Scancodes: | ||
*16 - Shift | *16 - Shift | ||
Zeile 105: | 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, | + | wo in PROFAN Variablen oder konstante Werte (Literale) eingesetzt werden können, |
- | Der Rückgabewert | + | Der Rückgabewert |
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 | + | Funktionen, deren Funktionsnamen mit dem $ enden, geben in vielen Fällen einen String |
- | Wenn der Rückgabewert | + | Wenn der Rückgabewert |
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$(" | @LISTBOX$(" | ||
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 | + | Ergebnis der Auswahl |
Zeile 122: | Zeile 122: | ||
*N : Integer (0 ... 8) | *N : Integer (0 ... 8) | ||
| | ||
- | Der N-te übergebene | + | Der N-te übergebene |
*@%(N) | *@%(N) | ||
*N : Integer (0 ... 8) | *N : Integer (0 ... 8) | ||
| | ||
- | Der N-te übergebene | + | Der N-te übergebene |
*@&(N) | *@&(N) | ||
*N : Integer (0 ... 8) | *N : Integer (0 ... 8) | ||
| | ||
- | Der N-te übergebene | + | Der N-te übergebene |
- | Der 0. Parameter ist nach Aufruf einer Prozedur oder einem Unterprogramm mit RETURN < | + | Der 0. Parameter ist nach Aufruf einer Prozedur oder einem Unterprogramm mit RETURN < |
*@Abs(N) | *@Abs(N) | ||
Zeile 144: | Zeile 144: | ||
*S2 : String | *S2 : String | ||
*Ergebnis: String | *Ergebnis: String | ||
- | Verknüpfung | + | Verknüpfung |
*@Add(N1, | *@Add(N1, | ||
Zeile 156: | Zeile 156: | ||
*N2 : Wert | *N2 : Wert | ||
*Ergebnis: Wert | *Ergebnis: Wert | ||
- | Die Werte von N1 und N2 werden mit der AND-Funktion | + | Die Werte von N1 und N2 werden mit der AND-Funktion |
sind. Vergleiche: @OR, @NOT | sind. Vergleiche: @OR, @NOT | ||
Zeile 165: | Zeile 165: | ||
*@Date$(N) | *@Date$(N) | ||
- | *N : Integer - Ausgabeform | + | *N : Integer |
*Ergebnis: String - Datum | *Ergebnis: String - Datum | ||
- | Die Funktion | + | Die Funktion |
- | *0 : Kurzform | + | |
- | *1 : Langform (z.B. "9. April 1993") * | + | |
- | *2 : Langform mit Tag (z.B. " | + | |
*@Del$(S, | *@Del$(S, | ||
Zeile 258: | Zeile 255: | ||
*S : Laufwerkskennzeichen | *S : Laufwerkskennzeichen | ||
| | ||
- | Der Pfad des angegebenen Laufwerks wird ermittelt, wobei " | + | Der Pfad des angegebenen Laufwerks wird ermittelt, wobei " |
Beispiel: | Beispiel: | ||
Let CPfad$=@GetDir$(" | Let CPfad$=@GetDir$(" | ||
Zeile 274: | 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 | + | 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 296: | Zeile 293: | ||
*@GetKey$() | *@GetKey$() | ||
*Ergebnis: String (1 Zeichen) | *Ergebnis: String (1 Zeichen) | ||
- | Wartet auf einen Tastendruck und gibt das Ergebnis | + | Wartet auf einen Tastendruck und gibt das Ergebnis |
*@GT(N1,N2) | *@GT(N1,N2) | ||
Zeile 313: | Zeile 310: | ||
*S : String | *S : String | ||
*Ergebnis: Wert (0 oder 1) | *Ergebnis: Wert (0 oder 1) | ||
- | Das Ergebnis ist dann 1, wenn die zuletzt | + | Das Ergebnis ist dann 1, wenn die zuletzt |
Beispiel: | Beispiel: | ||
WaitKey | WaitKey | ||
Zeile 380: | Zeile 377: | ||
*N2 : Wert | *N2 : Wert | ||
*Ergebnis: Integer | *Ergebnis: Integer | ||
- | ODER-Funktion: | + | ODER-Funktion: |
*@Ord(S) | *@Ord(S) | ||
Zeile 400: | 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 425: | Zeile 422: | ||
*Ergebnis: Substring aus S1 | *Ergebnis: Substring aus S1 | ||
Aus dem String S1 wird der N-te Teilstring herausgefiltert, | Aus dem String S1 wird der N-te Teilstring herausgefiltert, | ||
- | LET A$ = " | + | LET A$ = " |
PRINT @SUBSTR$(A$, | PRINT @SUBSTR$(A$, | ||
- | Das Ergebnis wäre der String " | + | Das Ergebnis wäre der String " |
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 .. 9) Dummy-Wert |
*Ergebnis: String | *Ergebnis: String | ||
- | Die Funktion ermittelt die aktuelle Uhrzeit:\\ | + | Die Funktion ermittelt die aktuelle Uhrzeit |
- | N = 0 : Sunden | + | |
- | N = 1 : Sekunden und 100stel Sekunden (z.B. " | + | |
*@Translate$(S1, | *@Translate$(S1, | ||
Zeile 447: | Zeile 442: | ||
*S : String | *S : String | ||
*Ergebnis: String | *Ergebnis: String | ||
- | Die führenden | + | Die führenden |
*@Upper$(S) | *@Upper$(S) | ||
*S : String | *S : String | ||
*Ergebnis: String | *Ergebnis: String | ||
- | Der String S wird komplett in Großbuchstaben umgewandelt, | + | Der String S wird komplett in Großbuchstaben umgewandelt, |
*@Val(S) | *@Val(S) | ||
Zeile 479: | Zeile 474: | ||
*AddFiles S | *AddFiles S | ||
*S : String - Dateimaske | *S : String - Dateimaske | ||
- | Mit diesem Befehl wird eine Dateiliste der Listbox-Liste | + | Mit diesem Befehl wird eine Dateiliste der Listbox-Liste |
Beispiel: | Beispiel: | ||
ClearList | ClearList | ||
Zeile 486: | Zeile 481: | ||
*AddString S | *AddString S | ||
*S : String | *S : String | ||
- | Mit diesem Befehl wird der String der Listbox-Liste | + | Mit diesem Befehl wird der String der Listbox-Liste |
Beispiel: | Beispiel: | ||
ClearList | ClearList | ||
Zeile 494: | 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 # | Assign # | ||
Zeile 518: | 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 524: | Zeile 519: | ||
Es wird zum Verzeichnis S gewechselt. Enthält S eine Laufwerksangabe, | Es wird zum Verzeichnis S gewechselt. Enthält S eine Laufwerksangabe, | ||
Beispiel: | Beispiel: | ||
- | ChDir "D:\TABELLEN\GRAFIK" | + | ChDir "A:\PROFAN\DATEN" |
- | | + | |
*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 543: | 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 " | ||
*Dec VAR | *Dec VAR | ||
Zeile 567: | Zeile 545: | ||
*Declare VAR [, | *Declare VAR [, | ||
*VAR : Variablen-Name | *VAR : Variablen-Name | ||
- | In PROFAN | + | In PROFAN |
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/ | + | nur dort lokal gültig. Der verwandte Speicherplatz wird bei Verlassen des Unterprogrammes/ |
Beispliel: | Beispliel: | ||
Decalare XPos%, | Decalare XPos%, | ||
Zeile 585: | Zeile 563: | ||
*FileMode N | *FileMode N | ||
*N: Integer - Filemodus (siehe DOS-Dokumentation) | *N: Integer - Filemodus (siehe DOS-Dokumentation) | ||
- | Der Filemodus der für | + | 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 592: | Zeile 570: | ||
*Font N | *Font N | ||
- | *N : Wert - Font - Nummer (0 .. 2) | + | Wird erkannt, ist beim Portfolio aber wirkungslos. |
- | Der Font N fr 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 werden, solle 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%, | If @Equ(Test%, | ||
Zeile 608: | 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 | + | Auch eine Abrage auf mehrere Bedingungen (z.B. bei der Auswertung eines Menüs) ist mit ELSEIF möglich. Sobald eine Bedingung |
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 | + | PRINT "A ist größer |
ENDIF | ENDIF | ||
- | ACHTUNG: Hinter ELSEIF muß ein Bedingungsausdruck stehen. Fehlt dieser | + | ACHTUNG: Hinter ELSEIF muß ein Bedingungsausdruck stehen. Fehlt dieser |
*IfNot N ... [ElseIf N ... ] [Else ...] | *IfNot N ... [ElseIf N ... ] [Else ...] | ||
*EndIf | *EndIf | ||
- | Als Kurzform | + | Als Kurzform |
IfNot @Equ(Test%, | IfNot @Equ(Test%, | ||
Print "Test% ist nicht 78!" | Print "Test% ist nicht 78!" | ||
Zeile 661: | 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 | + | Beim LET-Befehl |
Beispiel: | Beispiel: | ||
LET Text$ = "Du hast", | LET Text$ = "Du hast", | ||
- | HINWEIS: Die automatische Typumwandlung funktioniert bei einfachen Variablen. Bei Funktionen, die einen numerischen Wert zurükgegeben, wird nicht immer automatisch umgewandelt, | + | HINWEIS: Die automatische Typumwandlung funktioniert bei einfachen Variablen. Bei Funktionen, die einen numerischen Wert zurükgegeben, wird nicht immer automatisch umgewandelt, |
*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 | + | Der String S wird wird an Position N in die ListBox-Liste |
*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 | + | Der nächste PRINT- oder INPUT-Befehl |
- | Wirkt nur für Textmodus-Befehle. | + | |
*MkDir S | *MkDir S | ||
Zeile 681: | 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 | + | Mindestweite der Ausgabe numerischer Werte. Dieser Wert wird auch von der @STR$-Funktion und dem Befehl DrawText verwandt. Ist der Ausgabestring |
Siehe auch: Decimals | Siehe auch: Decimals | ||
Zeile 699: | 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; | ||
- | überprft | + | überprft |
Siehe auch: Proc | Siehe auch: Proc | ||
Zeile 705: | Zeile 674: | ||
*N : Wert - Dateikennzeichen (1..8) | *N : Wert - Dateikennzeichen (1..8) | ||
*f : druckbarer Ausdruck | *f : druckbarer Ausdruck | ||
- | Der Ausdruck, bzw. die Ausdrücke | + | Der Ausdruck, bzw. die Ausdrücke |
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 | + | Der Ausdruck, bzw. die Ausdrücke |
Print "Dies ist der", | Print "Dies ist der", | ||
Zeile 717: | Zeile 686: | ||
*< | *< | ||
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 | + | PARAMETERS-Befehl werden die übergebenen |
Beispiel: | Beispiel: | ||
PROC Wiederhole | PROC Wiederhole | ||
Zeile 729: | Zeile 698: | ||
ENDPROC | ENDPROC | ||
Wiederhole " | Wiederhole " | ||
- | Die in der Prozedur | + | Die in der Prozedur |
Übergabe eines Wertes an das aufrufende Programm möglich ist. | Übergabe eines Wertes an das aufrufende Programm möglich ist. | ||
Zeile 735: | 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 | + | 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 |
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. | + | Alles was dahinter steht, ist Kommentar. REM steht immer am Anfang der Kommentarzeile. |
Zeile 768: | Zeile 737: | ||
*Return [< | *Return [< | ||
- | 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 775: | Zeile 744: | ||
Print "Im Hauptprogramm" | Print "Im Hauptprogramm" | ||
Test | Test | ||
- | Print " | + | Print " |
- | Der zurückgegebene | + | Der zurückgegebene |
*Rewrite #N | *Rewrite #N | ||
Zeile 792: | Zeile 761: | ||
Das Verzeichnis S wird gelöscht. Enthält es noch Dateien oder Unterverzeichnisse, | Das Verzeichnis S wird gelöscht. Enthält es noch Dateien oder Unterverzeichnisse, | ||
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 " | ||
- | Run " | ||
- | Run " | ||
*Seek #N,A | *Seek #N,A | ||
Zeile 810: | 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 | + | *2 - Für ganz Vorsichtige: |
- | *1 - Für | + | *1 - Für die Programmentwicklung: |
*0 - Der Normalzustand: | *0 - Der Normalzustand: | ||
- | *-1 - Fast schon kriminell: Auch Fehlermeldungen werden | + | *-1 - Fast schon kriminell: Auch Fehlermeldungen werden |
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 827: | 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 " | ||
- | Vergleiche auch: Run | ||
*StrWidth N | *StrWidth N | ||
*N: Integer (Mindestweite) | *N: Integer (Mindestweite) | ||
- | Die Mindest-Ausgabeweite | + | Die Mindest-Ausgabeweite |
*Sub VAR,N | *Sub VAR,N | ||
Zeile 881: | Zeile 835: | ||
... - ... | ... - ... | ||
123 - F12 | 123 - F12 | ||
- | Die übrigen | + | Die übrigen |
Cls | Cls | ||
While 1 ' | While 1 ' | ||
Zeile 930: | Zeile 884: | ||
|115 :| ENDPROC nicht gefunden!| | |115 :| ENDPROC nicht gefunden!| | ||
- | ^Ungültige/fehlende Parameter^^ | + | ^Ungültige/fehlende Parameter^^ |
- | |200 :| Ungültiger | + | |200 :| Ungültiger |
|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 | + | |207 :| Bereichsgrenze |
|208 :| Kommandozeilenparameter fehlt!| | |208 :| Kommandozeilenparameter fehlt!| | ||
|209 :| Datei nicht gefunden:| | |209 :| Datei nicht gefunden:| | ||
Zeile 946: | Zeile 900: | ||
|215 :| Variable nicht deklariert: | |215 :| Variable nicht deklariert: | ||
|216 :| Falscher Parametertyp: | |216 :| Falscher Parametertyp: | ||
- | |217 :| Speicher | + | |217 :| Speicher |
- | |218 :| Speicher | + | |218 :| Speicher |
- | |219 :| Speicher | + | |219 :| Speicher |
|221 :| Während der Druckausgabe verboten:| | |221 :| Während der Druckausgabe verboten:| | ||
|222 :| Box nicht innerhalb des Fensters!| | |222 :| Box nicht innerhalb des Fensters!| | ||
Zeile 966: | Zeile 920: | ||
|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 | + | |905 :| Keine gültige |
|906 :| Programmdatei fehlerhaft!| | |906 :| Programmdatei fehlerhaft!| | ||
+ | ===== Download ===== | ||
+ | |||
+ | {{: |
software/diy/andere/profan.1139940707.txt.gz · Zuletzt geändert: 16/02/2024 17:02 (Externe Bearbeitung)