|
FATS ist aufrufkompatibel zu der Dateiverwaltung FABS PLUS, dadurch ist die Einbindung des Programmes in bestehende, auf FABS basierende Anwendungsprogramme ohne Quelltextänderungen durch Austausch der OBJ-Module erledigt. Sämtliche Programmierschnittstellen dieser Software wurden nachgebildet. Sie können auch in Kombination mit den neuen verbesserten Schnittstellen von FATS verwendet werden, um so einen schrittweisen Umstieg zu ermöglichen. Das nachfolgende Basic Beispiel demonstriert die Verwendung der von FATS bereitgestellten  FABS PLUS kompatiblen Befehle:
10 PRINT"Dieses Programm funktioniert mit dem Quick Basic Interpreter (DOS5)" 20 PRINT 30 INPUT"Bitte [ENTER] drücken...";X$ 40 REM 50 REM -------> FSEG / Segmentadresse von FATS lesen 60 REM 70 OPEN "I" , #1, "FSEG" 80 INPUT #1,FSEG 90 CLOSE #1 100 REM 110 REM -------> ASCII-Datei mit Demodaten öffnen 120 REM 130 OPEN "R", #1, "..\..\..\DEMODATA\KUNDEN.ASC", 105 140 FIELD #1,5 AS F1$,25 AS F2$,25 AS F3$,25 AS F4$,5 AS F5$,20 AS F6$ 200 REM 210 REM -------> Datendatei erstellen 220 REM 230 PRINT"Datendatei wird erstellt ..." 240 OPEN "R", #2, "KUNDEN.DAT", 128 250 FIELD #2,1 AS D1$,5 AS D2$,25 AS D3$,25 AS D4$,25 AS D5$,5 AS D6$,20 AS D7$ 260 REM 270 REM -------> Indexdatei erstellen 280 REM 290 PRINT"Indexdatei wird erstellt ..." 300 CMND$="C\KUNDEN.KEY\25\3\A\1" 310 GOSUB 2130 400 REM 410 REM -------> Datensätze einfügen 420 PRINT 430 PRINT"Es werden jetzt 222 Datensätze in die Datei eingefügt. Für jeden" 440 PRINT"Datensatz werden 3 Schlüssel in die Indexdatei eingefügt." 450 INPUT"Bitte [ENTER] drücken...";X$ 460 FOR X=1 TO 222 470 GET #1,X 480 LSET D1$=" " 490 LSET D2$=F1$ 500 LSET D3$=F2$ 510 LSET D4$=F3$ 520 LSET D5$=F4$ 530 LSET D6$=F5$ 540 LSET D7$=F6$ 550 CMND$="I\1\"+RTRIM$(D3$)+"\"+RTRIM$(D4$)+"\"+RTRIM$(D6$+D7$) 560 GOSUB 2130 570 IF FATSERR% <> 0 THEN 2030 580 PRINT D3$;" --> Satznummer ";RECNO 590 PUT #2,RECNO 600 NEXT X 610 CLOSE #1 700 REM 710 REM -------> Datensätze nach Name sortiert ausgeben 720 REM 730 PRINT 740 PRINT"Die Datensätze werden jetzt anhand des ersten Schlüssels (NAME)" 750 PRINT"aufsteigend sortiert ausgegeben. Der dabei verwendete FATS-Befehl" 760 PRINT"SEARCH NEXT AFTER kann im Einzelplatz und im Netzwerk verwendet" 770 INPUT"werden. Bitte [ENTER] drücken...";X$ 780 CMND$="F\1\1" 790 GOSUB 2130 800 IF FATSERR% <> 0 THEN 920 820 GOSUB 2270 830 GET #2,RECNO 840 PRINT D3$;" --> Satznummer ";RECNO 850 CMND$="A\1\"+STR$(RECNO)+"\1\"+FATSKEY$ 860 GOTO 790 900 REM 910 REM -------> Datensätze nach Branche sortiert ausgeben 920 PRINT 930 PRINT"Die Datensätze werden jetzt anhand des zweiten Schlüssels (BRANCHE)" 940 PRINT"aufsteigend sortiert ausgegeben." 950 INPUT"Bitte [ENTER] drücken...";X$ 960 CMND$="F\2\1" 970 GOSUB 2130 980 IF FATSERR% <> 0 THEN 1060 990 GET #2,RECNO 1000 PRINT D4$;" ";D3$;" --> Satznummer ";RECNO 1010 REM **** Nur für Einzelplatzsysteme geeignet: SEARCH NEXT **** 1020 CMND$="N\1" 1030 GOTO 970 1040 REM 1050 REM -------> Datensätze nach PLZ & Ort sortiert ausgeben 1060 PRINT 1070 PRINT"Die Datensätze werden jetzt anhand des dritten Schlüssels (PLZ/ORT)" 1080 PRINT"absteigend sortiert ausgegeben." 1090 INPUT"Bitte [ENTER] drücken...";X$ 1100 CMND$="L\3\1" 1110 GOSUB 2130 1120 IF FATSERR% <> 0 THEN 2030 1140 GOSUB 2270 1150 GET #2,RECNO 1160 PRINT D6$;" ";D7$;" ";D3$;" --> Satznummer ";RECNO 1170 CMND$="E\3\"+STR$(RECNO)+"\1\"+FATSKEY$ 1180 GOTO 1110 2000 REM 2010 REM -------> Indexdatei schließen (nicht vergessen !!!) 2020 REM 2030 CMND$="K\1" 2040 GOSUB 2130 2050 CLOSE #2 2060 SYSTEM 2100 REM 2110 REM *** FATS aufrufen *** 2120 REM 2130 FTSQUICK%=8 2140 DEF SEG=FSEG 2150 CALL ABSOLUTE (CMND$,FATSERR%,RECLO%,ADRKEY%,FTSQUICK%) 2160 RECLO=RECLO% : IF RECLO<0 THEN RECLO=RECLO+65536! 2170 ADRKEY=ADRKEY% : IF ADRKEY<0 THEN ADRKEY=ADRKEY+65536! 2180 CMND$="X" 2190 CALL ABSOLUTE (CMND$,DUMMY%,RECHI%,DUMMY%,FTSQUICK%) 2200 RECHI=RECHI% : IF RECHI<0 THEN RECHI=RECHI+65536! 2210 RECNO=RECLO+RECHI*65536! 2220 DEF SEG 2230 RETURN 2240 REM 2250 REM *** Schlüsselwert kopieren *** 2260 REM 2270 FATSKEY$="" 2280 FOR X=ADRKEY TO ADRKEY+24 2290 DEF SEG=FSEG 2300 FATSI=PEEK(ADRKEY) 2310 DEF SEG 2320 FATSKEY$=FATSKEY$+CHR$(FATSI) 2330 ADRKEY=ADRKEY+1 2340 NEXT X 2350 RETURN
© 2008 GCS Software, Udo Gertz