' *****************************************************
' ** MBASIC-Programm zur Demonstration des Gebrauchs **
' ** externer Unterprogramme als Spracherweiterung **
' *****************************************************
'
DEFINT A-Z
OPTION BASE 1
'
' Array-Definitionen:
'
DIM BUF(10), SBUF(3), TEMP(10)
'
' Array-Laengen in Bytes:
'
COUNTB = 20
COUNTS = 6
'
' Array-Laengen in Worten:
'
WCOUNTB = COUNTB/2
WCOUNTS = COUNTS/2
'
' Belegen des Arrays BUF mit Werten:
'
FOR I = 1 TO WCOUNTB
BUF(I) =2*I
NEXT I
'
' Suchkriterium festlegen:
'
SBUF(1) = 8 : SBUF(2) = 10 : SBUF(3) = 12
'
' ======================================================
' ! !
' SBUF in BUF suchen:
'
CALL BLOC(BUF(1),COUNTB,SBUF(1),COUNTS,POINT)
'
' ! !
' ======================================================
'
' (POINT ist Position in Bytes)
'
IF POINT = 0 THEN 1000
'
COUNT = COUNTB - POINT + 1
WPOINT = (POINT + 1)/2
'
' ==========================================
' !
' Feld TEMP loeschen:
'
DEL = 0
CALL BFILL(TEMP(1),COUNTB,DEL)
'
' Feld BUF ab WPOINT nach TEMP kopieren:
'
CALL BMOVE (BUF(WPOINT),TEMP(1),COUNT)
'
' !
' ==========================================
GOTO 2000
'
' SBUF nicht gefunden:
'
1000 PRINT "SBUF nicht gefunden !"
PRINT : PRINT
'
' Felder zur Kontrolle ausgeben:
'
2000 PRINT "BUF : "
FOR I = 1 TO WCOUNTB
PRINT BUF(I);" ";
NEXT I
PRINT : PRINT
PRINT "SBUF : "
FOR I = 1 TO WCOUNTS
PRINT SBUF(I);" ";
NEXT I
PRINT : PRINT
PRINT "TEMP : "
FOR I = 1 TO WCOUNTB
PRINT TEMP(I);" ";
NEXT I
'
' ******************************************
'
' Bearbeitung eines Strings:
'
ST$ = "Dies ist ein String"
CALL UCASE (ST$)
'
PRINT : PRINT
PRINT ST$
'
END
Bild 5. So werden externe Unterprogramme von MBasic aus benutzt
|