home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload
/
ShartewareOverload.cdr
/
progm
/
franz.zip
/
BASIC.DOC
< prev
next >
Wrap
Text File
|
1990-07-12
|
7KB
|
261 lines
FranzBasic
implemented functions (november 1989)
Data-Definitions
DIM define dimensioned array
Dim Price(10), y%(20)
RECORD define variable of type record
RECORD RtypeA Arecord
RECTYPE define record-type
RECTYPE RtypeA
RECVAR A$ 20, i%, Preis
ENDREC
STATIC declare local variable static
STATIC i%
LOCAL declares a variable as local to a subroutine
LOCAL i%, Price
Programm-Control
PAUSE show test and wait for key-press
PAUSE "press key to continue"
GOTO jump to label
GOTO End
AND logical operator in IF-statments
If i% > 0 AND len% > 0 THEN ....
NOT logical operator in IF-statments
If NOT (i% > 0 AND len% > 0) THEN ....
OR logical operator in IF-statments
If i% > 0 OR len% > 0 THEN ....
IF IF-statement
IF Price < 100.0 Then Print "OK" (single-line form)
IF Price < 100.0 Then (multi-line form)
...
ELSE
...
ENDIF
IF Price < 100.0 Then
...
ELSIF Price < 150.0 Then
...
ELSE
...
ENDIF
BREAK leaves WHILE-, REPEAT- or FOR-loop
FOR FOR-loop
FOR I% = 1 To 20 [Step 1]
...
IF .... THEN BREAK
...
ENDFOR
NEXT synonym for ENDFOR
REPEAT REPEAT-loop
REPEAT
...
If ... Then Break
...
UNTIL x < 0
SUBROUTINE begin subroutine
SUBROUTINE Add%(a%,b%)
Print "Sum = ";a%+b%
Return a%+b%
ENDSUB
GOSUB Add%(100,45) Called as procedure
Sum% = Add%(100,45) Called as function
VAR formal parameter by reference
Subroutine C1$(VAR S$)
S$ = "ABC" 'without VAR assignment irrelevant in main
Endsub
RETURN --> subroutine
GOSUB call subroutine
GOSUB Printall()
WHILE WHILE-loop
i% = 20
WHILE i%
...
If ... Then Break
...
i% = i%-1
WEND
STOP stop programm-execution
STOP
mathematical functions
SIN sine
X = SIN(Y)
COS cosine
X = COS(Y)
TAN tangens
x = TAN(y)
ATN arcustangens
x = ATN(Y)
EXP exponential
X = EXP(y)
LOG natural logarithm
x = LOG(y)
SQR squareroot
X = SQR(Y)
String-Statements and Functions
SET$ overwrite part of string
A$ = "ABcd" : part$ = "xx" : SET$ A$,2,part$ --> A$ = "Axxd"
DELETE$ delete part of string
DELETE$ A$,3,4 --> delete 4 char in string A$ beginning at char 3
INSERT$ insert string in another
A$ = "Ad" : part$ = "Bc" : INSERT$ A$,2,part$ --> A$ = "ABcd"
INSTR% checks whether a string is contained in another string and
returns position of 1. character, 0 when not contained
i% = INSTR%(S$,part$) --> i% = 3, when S$="123ABC", part$="3A"
LEFT$ return left part of a string
L$ = LEFT$("ABcd",2) --> L$ = "AB"
MID$ construct partstring mid of a string
part$ = MID$("ABcdZ",2,3) --> part$ = "BcD"
RIGHT$ return right part of a string
R$ = RIGHT$("ABcd",2) --> R$ = "cd"
LTRIM$ cut leading blanks
S$ = " 123" : S$=LTRIM$(S$) --> s$="123"
TRIM$ cut trailing blanks
S$ = "123 2" : S$=Trim(S$) --> S$ = "123"
LCASE$ convert string to lowercase
l$ = LCASE$("ABcd") --> l$ = "abcd"
UCASE$ convert string to uppercase
U$ = UCASE$("ABcd") --> U$ = "ABCD"
LEN% return length of a string
l% = LEN%("ABcd") --> l% = 4
ASC% returns ASC-value of 1. character in string
i% = ASC%("ABC") --> i% = 65
CHR$ converts integer-value to string-character
A$ = CHR$(66) --> A$ = "B"
STR$ convert number to string
A$ = STR$(100.0) --> A$ = "100.0"
VAL convert string to real number
a = VAL("123.9") --> a = 123.9
VAL% convert string to integer number
a% = VAL%("123.9") --> a% = 123
Database-Statements
DBCREATE create database with record
DBCREATE "Article",Artrecordtype
DBOPEN open database
DBOPEN #1,"Article"
DBCLOSE close database
DBCLOSE #1
DBGET read record with key
DBGET #1,artnr$,Artrecord
DBPUT write record
DBPUT #2, Artikelsatz
DBDELETE delete last accessed record
DBDELETE #1
DBBROWSE browse through a database on screen
starting-record and format can be defined
DBBROWSE #1[,start$,format$]
screen-management
CLS erases screen
COLOUR switch colours
COLOUR 7,0 --> white on black
LOCATE position cursor
LOCATE x%,y%
IO-Statements (files, keyboard, printer)
OPEN open file
OPEN "I", #1,"Fakt.txt" open for input
OPEN "O", #1,"Fakt.txt" open for output
OPEN "R", #1,"Fakt.txt",Artrecord open for random-access
CLOSE close file
Close #3
INPUT input data
INPUT [Prompt$,]a% (from keyboard)
INPUT #4, a% (from file)
LINE input to end of line
LINE INPUT #1,A$
PRINT output to file / screen
PRINT "Total Sum=";TS
PRINT #4,"Total Sum=";TS
LPRINT output to printer
LPRINT "Total Sum=";TS
USING define print-mask
r$ = 4.9 : PRINT USING "##,###.##",r$,"",r$ --> 4.90 4.9
WRITE output to file
WRITE #3, a%,s$
GET read record from random-datei
GET #3, number%, arec
PUT write record to random-datei
PUT #3, number%, arec
ERASE erase file
Erase "abc.txt"
RENAME rename file
RENAME oldname$, newname$
INKEY$ check last pressed key
INKEY$ a$
LASTKEY% get last read char
If LASTKEY%() = 27 Then Return (27 = ESC)
Miscellaneous
REM comment
REM this is a comment
' this too (' identical to REM on linebeginn)
i% = 0 'reset i% ( but can follow after statement)
ERROR% check for runtime-error
err% = error%()
EXEC start external programm
EXEC "format.com"
EXEC SHELL
INTERRUPT generate interrupt
INTERRUPT inr%,Regs
TIMEDATE$ return time and date
Time$ = TimeDate$(1) --> Zeit$ = "12:00:00"
Date$ = TimeDate$(2) --> Date$ = "26.9.1988"
Date$ = TimeDate$(3) --> Date$ = "9/26/1988"
FranzBasic special
DIALOG input data
Dialog "Artikel#: ",Artnr$[,x%,y%]
FILES display files and let user choose one
FILES "\Basic","bas",file$
FORM data entry for a record
FORM Artrecord$,[x%,y%]
MENU generate menu
Dim Mstring$(5)
MString$(1) = " Choice1 Choice2 Choice3 "
MString$(2) = " Helptext1 "
MString$(3) = " Helptext2 "
MString$(4) = " Helptext3 "
MString$(5) = ""
Menu MString$[,x%,y%]
MESSAGE generate messagebox
MESSAGE "Erase File| Yes No"
MOUSE ON switch mouse on
MOUSE OFF switch mouse off
MOUSE read mouse-data (button pressed, x-/y-position)
Mouse Button%, x%, y%