home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / basic / compiler / franzbas / basic.asc < prev    next >
Text File  |  1990-04-01  |  180KB  |  9,698 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.                        FranzBasic
  11.  
  12.  
  13.  
  14.  
  15.  
  16.                         Inhaltsverzeichnis
  17.  
  18.                     1  Vorbemerkungen
  19.  
  20.                     2  Handhabung
  21.  
  22.                     3  Einführung
  23.  
  24.                     4  Referenzteil
  25.  
  26.                        Anhang A   Installation
  27.  
  28.                        Anhang B   Runtime-Errors
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.                                         Dokumentation FranzBasic
  78.  
  79.                     1 Vorbemerkungen
  80.  
  81.                     Was hier vor Ihnen liegt ist FranzBasic in
  82.                     der Version 1.0. FranzBasic wurde geplant
  83.                     und entwickelt als Tool für die
  84.                     Programmierung von administrativen und
  85.                     kommerziellen Datensystemen.
  86.  
  87.                     Diesem Ziel gemäß enthält FranzBasic wenig
  88.                     für den technisch-wissenschaftlichen
  89.                     Bereich über das in 'Standard'-Basic
  90.                     verfügbare hinaus. Grafische Komponenten
  91.                     wurden mit Bedacht ausgelassen, sie hätten
  92.                     den Übersetzer weiter aufgebläht, ohne
  93.                     einem großen Benutzerkreis zu nützen.
  94.                     Grafik auf Bildschirm und Drucker ist
  95.                     FranzBasic windows vorbehalten, der Version
  96.                     für Microsoft-Windows (Erscheinungstermin:
  97.             Mai 1990)
  98.  
  99.                     Neben der in dieser Version vorhandenen
  100.                     Datenbank-Schnittstelle wird Version 1.1
  101.                     eine Spreadsheet-Schnittstelle enthalten,
  102.                     die das Lesen und Schreiben von
  103.                     verschiedenen Spreadsheet-Programmen
  104.                     ermöglicht.
  105.  
  106.                     Weitere Versionen von FranzBasic werden für
  107.                     verschiedene Unix-Rechner erscheinen.
  108.  
  109.                     Ich würde mich freuen, aus dem
  110.                     Anwenderkreis Anregungen für die
  111.                     Weiterentwicklung zu erhalten.
  112.  
  113.                     Ihr
  114.  
  115.                        Franz
  116.  
  117.  
  118.  
  119.                                         1-1
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.                                         Dokumentation FranzBasic
  148.  
  149.  
  150.  
  151.                     FranzBasic
  152.  
  153.                     Copyright Zimmer Informatik, Postfach
  154.                     140369, Düsseldorf
  155.  
  156.                     Verwendete Warenzeichen:
  157.                     Dbase III           Ashton-Tate
  158.                     Microsoft Windows     Microsoft
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.                                         1-2
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.                                         Dokumentation FranzBasic
  218.  
  219.  
  220.                     2 Handhabung
  221.  
  222.                     2.1 Compiler
  223.  
  224.                     Der FranzBasic-Übersetzer wird aufgerufen
  225.                     mit
  226.  
  227.                     Basic [Name [-b]]              (a)
  228.  
  229.                     Wird nur 'Basic' eingegeben, wird der
  230.                     Übersetzer in der interaktiven Form
  231.                     gestartet. Der Editor 'Fed.exe' wird
  232.                     nachgeladen und dem Programmierer für die
  233.                     Programm-Entwicklung zur Verfügung
  234.                     gestellt. Wird außerdem <Name> angegeben,
  235.                     wird die Datei "<Name>.bas" in den Editor
  236.                     geladen und ab der ersten Zeile auf dem
  237.                     Bilschirm dargestellt.
  238.  
  239.                     Durch Angabe der Option '-b' wird der
  240.                     Übersetzer im Batch-Mode betrieben. Der
  241.                     Programmtext wird aus Datei "<Name>.bas"
  242.                     gelesen und Programmcode in der Datei
  243.                     "<Name>.cod" erzeugt. Dieser Code kann dann
  244.                     durch den Runtime-Modul von FranzBasic zur
  245.                     Ausführung gebracht werden durch
  246.  
  247.                     Runfb Name                (b)
  248.  
  249.                     Dabei ist <Name> identisch mit <Name> aus
  250.                     (a). Im Gegensatz zum Übersetzer
  251.                     'basic.exe' kann das Runtime-Modul
  252.                     'runfb.exe' an andere Personen
  253.                     weitergegeben werden, um mit FranzBasic
  254.                     erzeugte Programme auch durch Dritte
  255.                     nutzbar zu machen.
  256.  
  257.  
  258.  
  259.                                         2-1
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.                                         Dokumentation FranzBasic
  288.  
  289.                     2.2 Der Editor
  290.  
  291.                     Der Editor 'Fed.exe' wird vom Übersetzer im
  292.                     interaktiven Mode nachgeladen, um Programm-
  293.                     Texte zu bearbeiten. Der Editor wird in
  294.                     zwei Modi betrieben: Eingabe-Mode und Menu-
  295.                     Mode.
  296.  
  297.                     Im Eingabe-Mode, der beim Start eingestellt
  298.                     ist, werden über Tastatur eingegebene
  299.                     Zeichen gespeichert und auf dem Bildschirm
  300.                     dargestellt. Bestimmte Sonderzeichen dienen
  301.                     zur Steuerung:
  302.  
  303.                     ESC         Abbrechen
  304.                     Cursortasten      Cursor bewegen
  305.                     Tab,Shift-Tab     Tabulator (4 Zeichen)
  306.                     PgUp (Bild auf)aufwärts blättern
  307.                     PgDn (Bild ab)    abwärts blättern
  308.                     Home (Pos1)   Zeilenanfang
  309.                     End (Ende)    Zeilenende
  310.                     Ctrl-Home        Anfang Programmtext
  311.                     Ctrl-End         Ende Programmtext
  312.                     Eingabe/Enter/CR   Zeilensprung
  313.                     BS          linkes Zeichen löschen
  314.                     Del (Entf)    Zeichen entfernen
  315.                     Ins (Einfg)   Einfügen aus/ein
  316.                     Shift-Ins        Zeile einfügen
  317.                     Ctrl-N       Leerzeile einfügen
  318.                     Ctrl-Y       Zeile Löschen
  319.  
  320.  
  321.                     Während 'Ctrl-N' eine Leerzeile einfügt,
  322.                     fügt 'Shift-Ins' die zuletzt mit 'Ctrl-Y'
  323.                     gelöschte Zeile wieder ein.
  324.  
  325.  
  326.  
  327.  
  328.  
  329.                                         2-2
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.                                         Dokumentation FranzBasic
  358.  
  359.                     Über Tastatur eingegebene Zeichen werden
  360.                     entweder zwischen vorhandene Zeichen
  361.                     eingefügt (Einfüge-Mode) oder überschreiben
  362.                     sie. Mit 'Ins' kann zwischen beiden Arten
  363.                     gewechselt werden. Beim Überschreiben nimmt
  364.                     der Cursor Blockform an.
  365.  
  366.                     Im Einfüge-Mode wird mit dem Drücken der
  367.                     Eingabe/Enter/CR-Taste eine neue Zeile
  368.                     unterhalb der aktuellen eingefügt und auf
  369.                     diese gesprungen. Steht der Cursor dabei
  370.                     nicht hinter dem letzten Zeichen der alten
  371.                     Zeile wird diese geteilt.
  372.  
  373.                     Zwei Zeilen können vereinigt werden, indem
  374.                     man die 'Del'-Taste drückt, während der
  375.                     Cursor genau hinter dem letzen Zeichen der
  376.                     oberen Zeile steht
  377.  
  378.                     Durch Drücken der linken Maustaste wird der
  379.                     Cursor an die Textstelle auf dem Bildschirm
  380.                     gesetzt, an der sich der Mauszeiger
  381.                     befindet.
  382.  
  383.                     In den Menu-Mode gelangt man durch Drücken
  384.                     und Loslassen der Taste 'Alt' oder durch
  385.                     Anklicken einer der Menupunkte mit der
  386.                     Maus. Nachfolgende Tastendrücke bewirken
  387.                     keine Eingaben in den Programmtext sondern
  388.                     dienen der Auswahl eines Kommandos aus dem
  389.                     Menu.
  390.  
  391.                     Bei Beginn des Menu-Modus wird für einen
  392.                     der Menupunkt ein Abrollmenu gezeigt. Wurde
  393.                     das Menu über 'Alt' aktiviert, wird das
  394.                     zuletzt gezeigte Abrollmenu gezeigt mit
  395.                     einem weissen Leuchtbalken auf dem zuletzt
  396.  
  397.  
  398.  
  399.                                         2-3
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.                                         Dokumentation FranzBasic
  428.  
  429.                     gewählten Kommando. Durch die Cursortasten
  430.                     kann der Leuchtbalken auf und ab geführt
  431.                     werden bzw. kann in die nächsten
  432.                     Abrollmenus rechts und links gewechselt
  433.                     werden. Wird Eingabe/Enter/CR gedrückt,
  434.                     wird das Kommando unter dem Leuchtbalken
  435.                     aktiviert. ESC oder ein weiteres 'Alt'
  436.                     bricht den Menu-Modus ab. In allen Fällen
  437.                     wird der Menu-Modus beendet.
  438.  
  439.                     Wird das Menu mit der Maus aktiviert, steht
  440.                     der Leuchtbalken nur auf dem zuletzt
  441.                     aktivierten Kommando, falls auch das
  442.                     zuletzt gezeigte Abrollmenu angewählt
  443.                     wurde, sonst auf dem ersten. Durch
  444.                     Anklicken mit der Maus wird ein Kommando
  445.                     aktiviert. Maus- und Tastatur-Bedienung
  446.                     können beliebig vermischt werden.
  447.  
  448.                     Viele Kommandos können auch durch Tastatur-
  449.                     Kürzel in Verbindung mit der 'Alt' oder der
  450.                     'Shift'-Taste eingegeben werden. Hier
  451.                     entfällt der Aufruf des Menus. Da in den
  452.                     Menus die Kürzel neben den Kommandos
  453.                     aufgeführt sind und am besten dort gelernt
  454.                     werden, sind sie hier nicht aufgezählt.
  455.  
  456.                     Im ersten Abrollmenu - Datei - finden sich
  457.                     Kommandos zur Dateibehandlung und
  458.                     ähnliches. Die aktuell bearbeitete Datei
  459.                     wird in der Statuszeile am unteren
  460.                     Bildschirm-Rand zwischen zwei eckigen
  461.                     Klammern [  ] angezeigt. Zu einigen
  462.                     Kommandos wird eine Dateiauswahl angezeigt.
  463.                     In ihr werden die Dateien im aktuellen
  464.                     Verzeichnis mit der Namenserweiterung
  465.                     '.bas' zur Auswahl angeboten (sie werden
  466.  
  467.  
  468.  
  469.                                         2-4
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.                                         Dokumentation FranzBasic
  498.  
  499.                     angezeigt ohne diese Erweiterung). Analog
  500.                     zum Menu kann hier mit Leuchtbalken oder
  501.                     Maus gearbeitet werden. Es kann aber auch
  502.                     über Tastatur ein neuer Name eingegeben
  503.                     werden (auch dieser ohne '.bas').
  504.  
  505.                     Mit 'Bsystem' mit der Kommandoprozessor des
  506.                     Betriebssystems geladen. Es können dann
  507.                     Kommandos auf MS-DOS-Ebene eingegeben
  508.                     werden. Durch das Kommando 'exit' wird der
  509.                     Kommandoprozessor beendet und FranzBasic
  510.                     kehrt zurück.
  511.  
  512.                     Im zweiten Abrollmenu - Edit - finden sich
  513.                     Kommandos zur Editierung des Texts. Bevor
  514.                     Operationen wie Verschieben, Kopieren oder
  515.                     Löschen von Textblöcken stattfinden können,
  516.                     muß mit 'Blockanfang', 'Blockende' ein
  517.                     Block markiert werden.
  518.  
  519.                     Unter Option können der Einfüge- oder
  520.                     Überschreibemodus bei der Texteingabe
  521.                     eingestellt werden und die automatische
  522.                     Datensicherung ein- und ausgeschaltet
  523.                     werden. Beide Kommandos wirken sowohl als
  524.                     Ein- als auch als Ausschalter, je nach
  525.                     Zustand bei der Anwahl. Auf der Statuszeile
  526.                     werden die Merker 'INS' bzw. 'BAK' gezeigt,
  527.                     wenn der Einfügemodus bzw Auto-Sicherung
  528.                     eingestellt ist.
  529.  
  530.                     Die automatische Datensicherung sichert den
  531.                     Programmtext in regelmäßigen Abständen auf
  532.                     die Platte in das aktuelle Verzeichnis
  533.                     unter dem Namen 'Basic000.bak'. Bei Bedarf
  534.                     kann auf diese Sicherung zurückgegriffen
  535.                     werden. Da die Datei die Namenserweiterung
  536.  
  537.  
  538.  
  539.                                         2-5
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.                                         Dokumentation FranzBasic
  568.  
  569.                     '.bak' hat kann sie jedoch nicht direkt in
  570.                     den Editor geladen werden, sondern muß
  571.                     umbenannt werden.
  572.  
  573.                     Die Auto-Sicherung sollte niemanden davon
  574.                     abhalten, seine Programmtexte regelmäßig
  575.                     auf Diskette zu sichern! Sie sollte auch
  576.                     nur bei  Begründung abgeschaltet werden, z.
  577.                     B. bei Arbeiten auf Diskettenlaufwerken.
  578.  
  579.                     Im Abrollmenu Run finden sich die Kommandos
  580.                     zum Übersetzen und Starten von Programmen.
  581.                     Wird ein Programm durch 'Compile'
  582.                     fehlerfrei oder nur mit Warnungen
  583.                     übersetzt, kann es mit 'Start' gestartet
  584.                     werden.
  585.  
  586.                     Treten bei der Übersetzungen Warnungen oder
  587.                     Fehler auf, werden bis zu neunzehn davon
  588.                     gespeichert. Der erste wird über der
  589.                     Statuszeile am unteren Bildschirmrand
  590.                     angezeigt und der Cursor auf die
  591.                     Fehlerstelle gesetzt. Durch das Kommando
  592.                     'Fehler' werden weitere Fehler angezeigt.
  593.                     Nach dem letzten Fehler wird durch
  594.                     nochmaliges Kommando 'Fehler' von vorn
  595.                     begonnen. Zwischendurch können Fehler durch
  596.                     Änderung des Programmtexts behoben werden.
  597.  
  598.                     Beim Start eines Programms macht der Editor
  599.                     den Bildschirm frei für den 'Output'-
  600.                     Schirm, der anfänglich der Bildschirminhalt
  601.                     bei Start von FranzBasic ist. Nach
  602.                     Programmende kehrt der Editor zurück. Damit
  603.                     für die Korrektur von Programmen der
  604.                     'Output'-Schirm eingesehen werden kann,
  605.                     steht das Kommando 'Output' zur Verfügung,
  606.  
  607.  
  608.  
  609.                                         2-6
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.                                         Dokumentation FranzBasic
  638.  
  639.                     das den 'Output'-Schirm bei Programmende
  640.                     zeigt. Ein beliebiger Tastendruck führt
  641.                     wieder in den Editor zurück.
  642.  
  643.                     2.3 Erstellen großer Programme
  644.  
  645.                     Der FranzBasic-Editor 'fed.exe' hat nur
  646.                     eine begrenzte Kapazität von 600 Zeilen
  647.                     (dafür aber eine hohe Geschwindigkeit).
  648.                     Wenn größere Programme geschrieben werden
  649.                     sollen, geht man z. B. mit der nachfolgend
  650.                     beschriebenen Methode vor.
  651.  
  652.                     Man entwickelt interaktiv Programmteile in
  653.                     Unterprogrammform bis zur möglichen Größe
  654.                     mit einem kleinen Hauptprogramm zu
  655.                     Testzwecken. Letzteres wird zum Schluß
  656.                     wieder entfernt. Sind alle Programmteile
  657.                     fertig, compiliert man sie im Batch-Modus
  658.                     durch Angabe aller Dateien wie in:
  659.  
  660.                     Basic Name1 Name2 Name3 -b       (c)
  661.  
  662.                     der Übersetzer liest alle durch
  663.                     aufgeführten Dateien hintereinander ein und
  664.                     übersetzt diese als wären sie eine Datei.
  665.                     Das Hauptprogramm muß also in der letzten
  666.                     eingegebenen Datei stehen.
  667.  
  668.                     Die Ausführung des Programms erfolgt dann
  669.                     über das Runtime-Modul.
  670.  
  671.  
  672.  
  673.  
  674.  
  675.  
  676.  
  677.  
  678.  
  679.                                         2-7
  680.  
  681.  
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.                                         Dokumentation FranzBasic
  708.  
  709.  
  710.                     3 Einführung in FranzBasic
  711.  
  712.                     Inhalt
  713.  
  714.                     3.1   Programmaufbau in FranzBasic
  715.                     3.2   Variablen in FranzBasic
  716.                     3.3   Konstanten
  717.                     3.4   Arithmetische Ausdrücke
  718.                     3.5   String-Ausdrücke
  719.                     3.6   Logische Ausdrücke
  720.                     3.7   Datei-Bearbeitung
  721.                     3.8   Datenbank-Bearbeitung
  722.  
  723.                     3.1 Programmaufbau in FranzBasic
  724.  
  725.                     Programme bestehen aus einer Ansammlung von
  726.                     Programmanweisungen, auch einfach
  727.                     'Anweisungen' oder 'Statements' genannt.
  728.  
  729.                     Mehrere Statements oder Programmanweisungen
  730.                     können auf einer Zeile stehen. Sie werden
  731.                     dann durch das Zeichen ':' getrennt. Es
  732.                     gibt einige Ausnahmen:
  733.  
  734.                     - nach einzeiligen If-Anweisungen wie
  735.  
  736.                        If a% < 0 Then a% = -a%
  737.  
  738.                     können keine weitere Anweisungen gegeben
  739.                     werden. Es muß dann die mehrzeilige Form
  740.                     gewählt werden (siehe 'IF').
  741.  
  742.                     - nach Sprungmarken können keine
  743.                     Anweisungen folgen
  744.  
  745.  
  746.  
  747.  
  748.  
  749.                                         3-1
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.                                         Dokumentation FranzBasic
  778.  
  779.                     - nach den 'strukturierten' Anweisungen
  780.                     sind keine weiteren möglich
  781.  
  782.                     Programmanweisungen sind unterschieden in
  783.                     zwei Klassen: ausführbare und nicht
  784.                     ausführbare Anweisungen. Ausführbare
  785.                     Anweisungen werden beim Ablauf des
  786.                     Programms ausgeführt und führen irgendeine
  787.                     Änderung in Daten oder im Programmzustand
  788.                     herbei. Nichtausführbare Anweisung dienen
  789.                     zur Definition und Deklaration und werden
  790.                     bei der Übersetzung ausgewertet, z. B. DIM,
  791.                     RECTYPE, STATIC und andere.
  792.  
  793.  
  794.  
  795.                     Programme können strukturiert werden durch
  796.                     Anweisungen, die innerhalb eines Programmes
  797.                     Blöcke von Programmanweisungen bilden:
  798.  
  799.                     - Subroutine ... Endsub
  800.  
  801.                     - For ... Endfor
  802.  
  803.                     - If ... Endif
  804.  
  805.                     - While ... Wend
  806.  
  807.                     - Repeat ... Until
  808.  
  809.                     sind solche Anweisungspaare, die alle
  810.                     Statments '...' zwischen der einleitenden
  811.                     (Subroutine, For, If, While, Repeat) und
  812.                     der abschliessenden Anweisung (Endsub,
  813.                     Endfor, Endif, Wend, Until) zu einem
  814.                     Programmblock schliessen. Diese Anweisungen
  815.  
  816.  
  817.  
  818.  
  819.                                         3-2
  820.  
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.                                         Dokumentation FranzBasic
  848.  
  849.                     werden oft auch strukturierte Anweisungen
  850.                     genannt.
  851.  
  852.                     Nach diesen strukturierten Anweisungen darf
  853.                     ebenfalls keine durch ':' abgetrenntes
  854.                     weiteres Statement stehen, wohl aber dürfen
  855.                     die Zeilen innerhalb des Blocks mehrere
  856.                     Anweisungen haben.
  857.  
  858.                     Die in einem Programmtext vorkommenden
  859.                     Wörter gehören in zwei Klassen, die
  860.                     reservierten Wörter und die vom
  861.                     Programmierer definierten Wörter.
  862.                     Reservierte Wörter sind diejenigen, die den
  863.                     Sprachumfang ausmachen, also 'IF',
  864.                     'SUBROUTINE', 'GOTO', einschließlich der
  865.                     eingebauten Funktionen wie SIN(), TRIM$().
  866.                     Vom Programmierer werden dazu Variablen und
  867.                     Konstanten definiert. Variablen sollten
  868.                     nicht die Namen reservierter Wörter
  869.                     benutzen.
  870.  
  871.                     Zwischen Klein- und Großbuchstaben wird
  872.                     weder bei reservierten Wörtern noch bei
  873.                     Variablen unterschieden, wohl aber
  874.                     innerhalb von Zeichenketten. Die Variable
  875.                     ABC$ kann Abc$, abc$, aBc$ geschrieben
  876.                     werden. Für die in ABC$ gespeicherte
  877.                     Zeichenkette gilt jedoch nicht, daß
  878.                     "Zeichenkette" gleich "zeichenKette" ist.
  879.  
  880.                     Ein Programmtext besteht aus Zeilen mit
  881.                     Programmanweisungen, die sich wiederum aus
  882.                     reservierten Wörtern und vom Programmierer
  883.                     definierten Wörtern zusammensetzen. Der
  884.                     Übersetzer macht aus diesem Programmtext
  885.  
  886.  
  887.  
  888.  
  889.                                         3-3
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.                                         Dokumentation FranzBasic
  918.  
  919.                     einen Programmcode, der vom Rechner durch
  920.                     ein runtime-Modul ausgeführt wird.
  921.  
  922.                     Ein wichtiges Element moderner
  923.                     Programmiersprachen sind Unterprogramme, in
  924.                     FranzBasic realisiert durch das
  925.                     Anweisungspaar 'SUBROUTINE' ... 'ENDSUB'.
  926.                     Unterprogramme sind in sich abgeschlossene
  927.                     Programmteile, die wiederholt innerhalb
  928.                     eines Programmes verwendet werden können
  929.                     aber nur einmal programmiert werden müssen
  930.                     und auch nur einmal Platz für Programmtext
  931.                     und Programmcode beanspruchen.
  932.  
  933.                     Unterprogramme stehen in FranzBasic
  934.                     grundsätzlich am Anfang eines
  935.                     Programmtexts, da sie definiert sein
  936.                     müssen, bevor sie aufgerufen werden können.
  937.                     Nach dem ENDSUB des letzten Unterprogramms
  938.                     beginnt automatisch das Hauptprogramm
  939.  
  940.                     3.2 Variablen in FranzBasic
  941.  
  942.                     Daten werden in Variablen gespeichert.
  943.                     FranzBasic unterstützt die Datentypen
  944.                     Integer (16-Bit Ganzzahl), Real (32-Bit
  945.                     Fließkommazahl), Long (32-Bit Ganzzahl),
  946.                     Double (64-Bit Fließkommazahl), String
  947.                     (Zeichenkette)
  948.  
  949.                     Die Variablen dürfen beliebige Namen mit
  950.                     max. 16 Stellen haben. Der Typ der
  951.                     Variablen wird durch das letzte Zeichen
  952.                     festgelegt, nach folgender Konvention:
  953.  
  954.                     % Integer,    z.B. i%
  955.                     & Long,      z.B. long&
  956.  
  957.  
  958.  
  959.                                         3-4
  960.  
  961.  
  962.  
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.                                         Dokumentation FranzBasic
  988.  
  989.                     # Double,        z.B. d1#
  990.                     $ String,        z.B. str$
  991.  
  992.                     Reals haben kein solches Kennzeichen. Eine
  993.                     Variable ist vom Typ Real, wenn sie keines
  994.                     der obigen Sonderzeichen als letztes
  995.                     Zeichen hat.
  996.  
  997.                     Für den Darstellungsbereich und die
  998.                     Genauigkeit der einzelnen Datentypen gilt
  999.                     das gleiche wie im Paragraphen 'Konstanten'
  1000.                     beschrieben.
  1001.  
  1002.                     Das letzte Zeichen darf kein Punkt sein, da
  1003.                     diese bei Records als Trennzeichen
  1004.                     verwendet werden.
  1005.  
  1006.                     Wird innerhalb eines Programms eine
  1007.                     Variable verwendet, die nicht (in
  1008.                     Subroutines) ausdrücklich als LOCAL oder
  1009.                     STATIC deklariert wurde, so handelt es sich
  1010.                     um eine 'Global'-Variable, der Regelfall.
  1011.                     'Global'-Variablen sind im Hauptprogramm
  1012.                     und in allen Subroutines bekannt, egal ob
  1013.                     sie im Hauptprogramm oder in einer
  1014.                     Subroutine erzeugt wurden. LOCAL- und
  1015.                     STATIC-Variablen sind nur in der Subroutine
  1016.                     bekannt, in der sie erzeugt wurden. Sie
  1017.                     sind werden unterschieden von 'Gobal'-
  1018.                     variablen gleichen Namens.
  1019.  
  1020.                     Bei erstmaliger Verwendung eines
  1021.                     Variablennamens der nicht unter LOCAL oder
  1022.                     STATIC vordefiniert wurde legt der Compiler
  1023.                     die Variable nach obenstehender Typen-
  1024.                     Konvention als 'Global' an, bei weiterer
  1025.  
  1026.  
  1027.  
  1028.  
  1029.                                         3-5
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.                                         Dokumentation FranzBasic
  1058.  
  1059.                     Nennung des gleichen Variablen-Namens wird
  1060.                     diese Variable verwendet.
  1061.  
  1062.                     Als zusammengesetzte Datentypen werden
  1063.                     Felder und Records unterstützt. Felder
  1064.                     bestehen aus gleichartigen Variablen auf
  1065.                     die über einen gemeinsamen Namen und einen
  1066.                     Index, der die einzelnen Variablen
  1067.                     voneinander unterscheidet, zugegriffen.
  1068.                     Felder werden durch die Anweisung DIM
  1069.                     erzeugt.
  1070.  
  1071.                     Records bestehen aus verschiedenen
  1072.                     Variablen auf die über den gemeinsamen
  1073.                     Record-Namen und einen individuellen
  1074.                     Recordvariablen-Namen zugegriffen wird.
  1075.                     Zwischen beide Namensteile wird ein Punkt
  1076.                     gesetzt. Records werden zweistufig erzeugt:
  1077.                     durch die Anweisung RECTYPE wird zunächst
  1078.                     ein Record-Typ deklariert, auf den sich
  1079.                     nachfolgende RECORD-Deklarationen beziehen.
  1080.  
  1081.                     Die Namen sowohl für den Record-Type als
  1082.                     auch für den Record müssen den Konventionen
  1083.                     für Reals gehorchen, d. h. kein angehängtes
  1084.                     Sonderzeichen wie %, &, #.
  1085.  
  1086.                     3.3 Konstanten
  1087.  
  1088.                     Entsprechend den verschiedenen einfachen
  1089.                     Datentypen gibt es verschiedene Konstanten.
  1090.  
  1091.                     Integer-Konstanten besteht als ganze Zahlen
  1092.                     einfach aus einer Anzahl von Ziffern. Die
  1093.                     Zahlen müssen zwischen -32768 und +32767
  1094.                     liegen, da dieser Bereich durch 16 Bit
  1095.                     dargestellt werden kann. Werden Integer-
  1096.  
  1097.  
  1098.  
  1099.                                         3-6
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.                                         Dokumentation FranzBasic
  1128.  
  1129.                     Konstanten ausserhalb dieses Bereichs
  1130.                     gebildet, sind die von Übersetzer erzeugten
  1131.                     internen Darstellungen unbestimmt. Bei
  1132.                     positiven Zahlen kann das Plus-Zeichen
  1133.                     entfallen.
  1134.  
  1135.                     Long-Konstanten bestehen entsprechend aus
  1136.                     Zahlen im Bereich von -2147483648 und
  1137.                     +2147483647 und haben zur Kennzeichnung ein
  1138.                     'L' angehängt, also z.B. -123L.
  1139.  
  1140.                     Real-Konstanten bestehen aus Vor- und
  1141.                     Nachkommastellen getrennt durch einen
  1142.                     Dezimalpunkt oder in der wissenschaftlichen
  1143.                     Exponentialnotation aus Mantisse und
  1144.                     Exponent, getrennt durch ein 'E'. Der
  1145.                     gültige Bereich liegt zwischen 3.4E-38 und
  1146.                     3.4E38 für positive Zahlen und genauso für
  1147.                     negative Zahlen. Die erreichbare
  1148.                     Genauigkeit liegt bei 7 Stellen.
  1149.  
  1150.                     Für Double-Konstanten ist das 'E' der Real-
  1151.                     Konstanten ersetzt durch 'D' und der
  1152.                     Bereich beträgt 1.7D-308 bis 1.7D308, die
  1153.                     Genauigkeit ca. 14 Stellen.
  1154.  
  1155.                     Da Reals und Doubles eine Fließkommazahl
  1156.                     wegen der beschränkten Stellenzahl nicht
  1157.                     exakt darstellen, können in der Praxis
  1158.                     Probleme z. B. beim Vergleich von Daten
  1159.                     auftreten. Ein offensichtliches Beispiel
  1160.                     ist:
  1161.  
  1162.                     If a = 1.0/3.0 Then Break
  1163.  
  1164.                     Da 1/3 oder 1.0/3.0 nicht mit einer
  1165.                     endlichen Stellenzahl als Fließkommazahl
  1166.  
  1167.  
  1168.  
  1169.                                         3-7
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.  
  1193.  
  1194.  
  1195.  
  1196.  
  1197.                                         Dokumentation FranzBasic
  1198.  
  1199.                     darzustellen ist, ist der Ausgang des
  1200.                     Vergleichs unbestimmt, er kann je nach dem
  1201.                     Weg auf dem der Wert der Variablen 'a'
  1202.                     erzeugt wurde WAHR oder FALSCH sein.
  1203.  
  1204.                     Aus diesem Grund sollten Reals und Doubles
  1205.                     auch nicht in FOR-Schleifen als
  1206.                     Zählvariablen eingesetzt werden (siehe
  1207.                     FOR).
  1208.  
  1209.                     String-Konstanten bestehen aus beliebig
  1210.                     aneinandergereihten Zeichen, eingeschlossen
  1211.                     durch ein Paar Anführungszeichen "". Die
  1212.                     maximale Länge beträgt 255 Zeichen.
  1213.  
  1214.                     3.4 Arithmetische Ausdrücke
  1215.  
  1216.                     Variablen und Konstanten werden durch
  1217.                     arithmetische Operatoren zu arithmetischen
  1218.                     Ausdrücken verbunden, deren Wert
  1219.                     gegebenenfalls an Variable zugewiesen wird.
  1220.  
  1221.                     Arithmetische Operatoren sind +, -, *, /
  1222.                     entsprechend den vier Grundrechenarten und
  1223.                     deren Regeln für Vorrang (Punktrechnung vor
  1224.                     Strichrechnung) und Klammerung. Sind in
  1225.                     einem arithmetischen Ausdruck mehrere
  1226.                     Datentypen vorhanden, nimmt der Übersetzer
  1227.                     automatisch eine Typwandlung vor, sofern es
  1228.                     sich um numerische Datentypen handelt.
  1229.                     Strings und Records sind mit anderen Typen
  1230.                     nicht kompatibel, d. h. eine Wandlung ist
  1231.                     nicht möglich. Felder können in
  1232.                     arithmetischen Ausdrücken elementweise
  1233.                     verwendet werden.
  1234.  
  1235.  
  1236.  
  1237.  
  1238.  
  1239.                                         3-8
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.  
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  
  1261.  
  1262.  
  1263.  
  1264.  
  1265.  
  1266.  
  1267.                                         Dokumentation FranzBasic
  1268.  
  1269.                     Bei der automatischen Wandlung wird immer
  1270.                     in den Datentyp gewandelt der die größere
  1271.                     Darstellungs-Möglichkeiten hat, d.h. in dem
  1272.                     Ausdruck
  1273.  
  1274.                        a% * b1
  1275.  
  1276.                     bestehend aus dem Integer a% und dem Real
  1277.                     b1 wird a% in eine Real-Zahl gewandelt und
  1278.                     dann die Multiplikation durchgeführt.
  1279.  
  1280.                     Wird der Wert eines arithmetischen
  1281.                     Ausdrucks durch den Zuweisungsoperator =
  1282.                     einer Variablen zugewiesen, wie in
  1283.  
  1284.                        erg% = a% * b1
  1285.  
  1286.                     so wird auf jeden Fall der arithmetische
  1287.                     Ausdruck in den Typ der Ergebnis-Variablen
  1288.                     gewandelt. Hat dieser geringere
  1289.                     Darstellungsmöglichkeiten, können
  1290.                     Informationsverluste (im obigen Beispiel
  1291.                     Verlust der Nachkommastellen) und komplette
  1292.                     Fehlinformation durch Übersteigen der
  1293.                     Darstellungsbreite des Ergebnistyps die
  1294.                     Folge sein (Wenn der Ausdruck a% * B1 z.B.
  1295.                     40000.0 ist, ist der Wert von erg%
  1296.                     unvorhersagbar.
  1297.  
  1298.                     Werden Konstanten direkt an Variablen
  1299.                     zugewiesen, ist es günstig wenn die
  1300.                     Typkonventionen eingehalten werden, wie in
  1301.  
  1302.                        a = 1.0      a# = 1.0D0
  1303.  
  1304.                     Würde man dagegen schreiben
  1305.  
  1306.  
  1307.  
  1308.  
  1309.                                         3-9
  1310.  
  1311.  
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.  
  1325.  
  1326.  
  1327.  
  1328.  
  1329.  
  1330.  
  1331.  
  1332.  
  1333.  
  1334.  
  1335.  
  1336.  
  1337.                                         Dokumentation FranzBasic
  1338.  
  1339.                        a = 1        a# = 1.0
  1340.  
  1341.                     würden die Ergebnis-Variablen die gleichen
  1342.                     Werte erhalten, es müßte jedoch eine
  1343.                     Wandlung durchgeführt werden, die Platz für
  1344.                     entsprechenden Programmcode und Rechenzeit
  1345.                     verbraucht.
  1346.  
  1347.                     Records können in arithmetischen Ausdrücken
  1348.                     nicht als Ganzes verwendet werden, nur
  1349.                     ihrer Elemente können verwendet werden.
  1350.                     Ausnahme hiervon ist die Zuweisung
  1351.  
  1352.                     Rectype Atype A1, A2
  1353.  
  1354.                     A1 = A2
  1355.  
  1356.                     A1 und A2 müssen vom gleichen Record-Type
  1357.                     sein!
  1358.  
  1359.                     Wo immer in arithmetischen Ausdrücken
  1360.                     Variablen stehen können, dürfen auch
  1361.                     Funktionen vom gleichen Datentyp stehen,
  1362.                     sowohl die in FranzBasic definierten
  1363.                     Standardfunktionen wie VAL oder VAL% als
  1364.                     auch vom Benutzer erstellte SUBROUTINES die
  1365.                     durch RETURN einen Wert zurückgeben. Auf
  1366.                     diese Weise können auch String-Werte in
  1367.                     arithmetische Ausdrücke eingebracht werden.
  1368.  
  1369.                     3.5 String-Ausdrücke
  1370.  
  1371.                     String-Konstanten und -Variablen können
  1372.                     Stringausdrücke bilden. Diese sind mit
  1373.                     anderen Datentypen nicht kompatibel, d. h.
  1374.                     Variablen anderer Datentypen können nicht
  1375.                     gewandelt werden und dürfen daher in
  1376.  
  1377.  
  1378.  
  1379.                                        3-10
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.  
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402.  
  1403.  
  1404.  
  1405.  
  1406.  
  1407.                                         Dokumentation FranzBasic
  1408.  
  1409.                     String-Ausdrücken nicht verwendet werden.
  1410.                     Zugelassen sind Record-Elemente vom
  1411.                     Datentyp String und Elemente aus String-
  1412.                     Feldern.
  1413.  
  1414.                     Einziger Operator in String-Ausdrücken ist
  1415.                     die Verkettung oder Concatanation,
  1416.                     dargestellt durch '+' wie in
  1417.  
  1418.                        Erg$ = "abc" + a$ + STR$(1.23)
  1419.  
  1420.                     Hier ist STR$ ein Standard-Funktion vom Typ
  1421.                     String, die natürlich in String-Ausdrücken
  1422.                     vorkommen dürfen. Da es Funktionen wie STR$
  1423.                     gibt, welche Zahlen in Zeichenketten
  1424.                     verwandeln, können auf diesem Weg Zahlen in
  1425.                     Stringausdrücke eingebracht werden.
  1426.  
  1427.                     3.6 Logische Ausdrücke
  1428.  
  1429.                     Elementare logische Ausdrücke enthalten
  1430.                     neben Variablen und Konstanten die
  1431.                     Vergleichsoperatoren
  1432.  
  1433.                     =  gleich
  1434.                     <  kleiner
  1435.                     <= kleiner gleich
  1436.                     >  größer
  1437.                     >=  größer gleich
  1438.                     <> ungleich
  1439.  
  1440.                     wie z.B. in
  1441.  
  1442.                        If a% > 0 Then...
  1443.                        While  summe% = 0
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.                                        3-11
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  
  1457.  
  1458.  
  1459.  
  1460.  
  1461.  
  1462.  
  1463.  
  1464.  
  1465.  
  1466.  
  1467.  
  1468.  
  1469.  
  1470.  
  1471.  
  1472.  
  1473.  
  1474.  
  1475.  
  1476.  
  1477.                                         Dokumentation FranzBasic
  1478.  
  1479.                     Der Vergleichsoperator = ist nicht zu
  1480.                     verwechseln mit dem Zuweisungsoperator =,
  1481.                     beide werden durch das gleiche Zeichen
  1482.                     dargestellt, haben aber verschiedene
  1483.                     Wirkung. In obigem Beispiel wird der
  1484.                     Variable 'summe%' kein Wert zugewiesen,
  1485.                     sondern es wird ein Vergleich auf
  1486.                     Gleichheit mit der Konstanten 0
  1487.                     durchgeführt.
  1488.  
  1489.                     Der Wert der logischen Ausdrücke ist
  1490.                     entweder -1, wenn der Vergleich WAHR ist
  1491.                     oder 0, wenn er FALSCH ist.
  1492.  
  1493.                     Da logische Ausdrücke einen Wert ergeben,
  1494.                     können sie durchaus in arithmetischen
  1495.                     Ausdrücken verwendet werden , z.B.
  1496.  
  1497.                        a% = b% > 1
  1498.  
  1499.                     a% ist -1, wenn b% > 1, sonst 0.
  1500.                     Andererseits können beliebige arithmetische
  1501.                     Ausdrücke als logische Ausdrücke verwendet
  1502.                     werden, da bei der Auswertung jeder Wert
  1503.                     ungleich 0 als WAHR interpretiert wird. Die
  1504.                     Schleife
  1505.  
  1506.                        i% = 10
  1507.                        While i%
  1508.                           ...
  1509.                           i% = i% - 1
  1510.                        Wend
  1511.  
  1512.                     wird solange durchlaufen bis i% auf 0
  1513.                     heruntergezählt ist und durch 'WHILE' daher
  1514.                     als FALSCH interpretiert wird.
  1515.  
  1516.  
  1517.  
  1518.  
  1519.                                        3-12
  1520.  
  1521.  
  1522.  
  1523.  
  1524.  
  1525.  
  1526.  
  1527.  
  1528.  
  1529.  
  1530.  
  1531.  
  1532.  
  1533.  
  1534.  
  1535.  
  1536.  
  1537.  
  1538.  
  1539.  
  1540.  
  1541.  
  1542.  
  1543.  
  1544.  
  1545.  
  1546.  
  1547.                                         Dokumentation FranzBasic
  1548.  
  1549.                     Logische Ausdrücke liefern jedoch den Wert
  1550.                     -1 als Ergebnis für WAHR und zwar als
  1551.                     Integer. -1 wurde gewählt weil in der
  1552.                     binären Darstellung dieser Zahl alle 16 Bit
  1553.                     auf '1' gesetzt sind.
  1554.  
  1555.                     Elementare logische Ausdrücke können durch
  1556.                     die logischen Verknüpfungs-Operatoren
  1557.                     'AND', 'OR' und 'NOT' zu zusammengesetzten
  1558.                     logischen Ausdrücken verbunden werden wie
  1559.                     in
  1560.  
  1561.                        If i% > 0 AND summe > 100.0 Then ...
  1562.  
  1563.                        If NOT s$ = "123" Then ...
  1564.  
  1565.                     Sind mehrere Verknüpfungs-Operatoren in
  1566.                     einem Ausdruck vorhanden, so gelten
  1567.                     Vorrangregeln wie bei arithmetischen
  1568.                     Ausdrücken. Eine AND-Verknüpfung wird vor
  1569.                     einer OR-Verknüpfung durchgeführt, durch
  1570.                     Klammerung kann die Reihenfolge geändert
  1571.                     werden.
  1572.  
  1573.  
  1574.                     3.7 Datei-Bearbeitung
  1575.  
  1576.                     FranzBasic verfügt über die klassischen IO-
  1577.                     Befehle von Basic, wenn auch die Behandlung
  1578.                     von Random-Dateien durch die Verwendung von
  1579.                     Records etwas modernisiert wurde.
  1580.  
  1581.                     Zwei Arten von Dateien werden unterstützt:
  1582.  
  1583.                     - Text-Dateien       Open "I", "O", "U"
  1584.  
  1585.                     - Random-Dateien      Open "R"
  1586.  
  1587.  
  1588.  
  1589.                                        3-13
  1590.  
  1591.  
  1592.  
  1593.  
  1594.  
  1595.  
  1596.  
  1597.  
  1598.  
  1599.  
  1600.  
  1601.  
  1602.  
  1603.  
  1604.  
  1605.  
  1606.  
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.                                         Dokumentation FranzBasic
  1618.  
  1619.                     Random-Dateien haben eine feste Satzlänge.
  1620.                     Es können nur ganze Datensätze in einen
  1621.                     Record gelesen und aus einem Record in die
  1622.                     Datei geschrieben werden. Als
  1623.                     Identifikation, welcher Satz zu lesen oder
  1624.                     zu schreiben ist, dient eine Satznummer,
  1625.                     welche mit der Position des Satzes in der
  1626.                     Datei identisch ist. Sätze können nur
  1627.                     geschrieben werden, wenn sie einen bereits
  1628.                     vorhandenen Satz überschreiben oder
  1629.                     unmittelbar an den letzten bereits
  1630.                     vorhanden Satz anschliessen. Das heißt,
  1631.                     Random-Dateien können nur lückenlos erzeugt
  1632.                     werden, ein Schreiben in beliebiger Folge
  1633.                     ist nicht möglich. Random-Dateien werden
  1634.                     mit den Anweisungen GET und PUT bearbeitet.
  1635.  
  1636.                     Text-Dateien können Daten beliebiger
  1637.                     Struktur enthalten. Sie werden sequentiell
  1638.                     gelesen oder geschrieben, d.h. vom ersten
  1639.                     Zeichen in der Datei zeichenweise
  1640.                     fortschreitend. Text-Dateien werden mit den
  1641.                     Befehlen INPUT, LINE INPUT, PRINT und WRITE
  1642.                     bearbeitet. INPUT und LINE INPUT auf der
  1643.                     einen sowie PRINT und WRITE auf der anderen
  1644.                     Seite bearbeiten die Dateien in etwas
  1645.                     unterschiedlicher Art, siehe Referenzteil
  1646.  
  1647.                     Beide Dateiarten werden mit OPEN zur
  1648.                     Bearbeitung geöffnet und gegebenenfalls
  1649.                     kreiert. Nach der Bearbeitung werden die
  1650.                     Dateien mit CLOSE geschlossen.
  1651.  
  1652.  
  1653.  
  1654.  
  1655.  
  1656.  
  1657.  
  1658.  
  1659.                                        3-14
  1660.  
  1661.  
  1662.  
  1663.  
  1664.  
  1665.  
  1666.  
  1667.  
  1668.  
  1669.  
  1670.  
  1671.  
  1672.  
  1673.  
  1674.  
  1675.  
  1676.  
  1677.  
  1678.  
  1679.  
  1680.  
  1681.  
  1682.  
  1683.  
  1684.  
  1685.  
  1686.  
  1687.                                         Dokumentation FranzBasic
  1688.  
  1689.                     3.8 Datenbank-Bearbeitung
  1690.  
  1691.                     FranzBasic verfügt über eine Anzahl Befehle
  1692.                     zur Bearbeitung dBase - III - kompatibler
  1693.                     Datenbanken. Jede Datenbank besteht aus
  1694.                     zwei Dateien:
  1695.  
  1696.                     - einer Datei mit Extension .dbf, welche
  1697.                     die eigentlichen Daten enthält
  1698.  
  1699.                     - und einer Datei mit Extension .ndx, die
  1700.                     zu Verwaltung der Datensatzschlüssel dient.
  1701.  
  1702.                     Der Datensatzschlüssel oder einfach
  1703.                     Schlüssel ist der Ordnungsbegriff nach
  1704.                     denen die Datensätze sortiert und gesucht
  1705.                     werden. Der Schlüssel ist das
  1706.                     Identifikationsmerkmal des Datensatzes. In
  1707.                     FranzBasic ist der Schlüssel immer das
  1708.                     erste Element des Records, mit dem die
  1709.                     Datenbank kreiert wurde (siehe DBCREATE).
  1710.                     Schlüssel müssen eindeutig sein, d.h. es
  1711.                     können nicht zwei Datensätze unter dem
  1712.                     gleichen Schlüssel gespeichert sein.
  1713.  
  1714.                     Wie gewöhnliche Dateien müssen Datenbanken
  1715.                     vor der Benutzung geöffnet und hinterher
  1716.                     geschlossen werden (DBOPEN, DBCLOSE). Im
  1717.                     Unterschied zu gewöhnlichen Dateien müssen
  1718.                     Datenbanken aber explizit kreiert werden
  1719.                     (DBCREATE) und werden nicht automatisch
  1720.                     beim Öffnen kreiert, falls sie noch nicht
  1721.                     existieren.
  1722.  
  1723.                     Die beim Öffnen einer Datenbank verwendete
  1724.                     Kennung kann gleichlauten mit einer Kennung
  1725.  
  1726.  
  1727.  
  1728.  
  1729.                                        3-15
  1730.  
  1731.  
  1732.  
  1733.  
  1734.  
  1735.  
  1736.  
  1737.  
  1738.  
  1739.  
  1740.  
  1741.  
  1742.  
  1743.  
  1744.  
  1745.  
  1746.  
  1747.  
  1748.  
  1749.  
  1750.  
  1751.  
  1752.  
  1753.  
  1754.  
  1755.  
  1756.  
  1757.                                         Dokumentation FranzBasic
  1758.  
  1759.                     für eine gewöhnliche Datei, sie werden von
  1760.                     FranzBasic unterschieden.
  1761.  
  1762.                     Mit DBGET und DBPUT werden Datensätze
  1763.                     gelesen bzw. geschrieben. Zum Lesen muß der
  1764.                     Schlüssel des gewünschten Satzes angegeben
  1765.                     werden. ist kein Satz mit dem gewünschten
  1766.                     Schlüssel vorhanden, wird der in
  1767.                     lexikalischer Anordnung nächst Satz
  1768.                     gelesen, gleichzeitig aber in Runtime-Error
  1769.                     gesetzt, der mit ERROR%() erkannt werden
  1770.                     kann.
  1771.  
  1772.                     Man kann dies ganz bewußt ausnutzen, indem
  1773.                     man mit Teilschlüsseln arbeitet, um den
  1774.                     internen Satzzeiger zu positionieren für
  1775.                     nachfolgende sequentielle Zugriffe. Hat man
  1776.                     z. Bsp. für eine Artikelstammdatei einen 8-
  1777.                     stelligen Schlüssel 'Artnr$' gewählt, so
  1778.                     wird ein Lesen der Datenbank mit dem
  1779.                     einstelligen Schlüssel "4" den ersten
  1780.                     Datensatz liefern, der mit einer "4"
  1781.                     beginnt (vielleicht 47-11299).
  1782.  
  1783.                     Sequentielles Verarbeiten der Datenbank -
  1784.                     d.h. arbeiten in Reihenfolge der Schlüssel
  1785.                     - wird ermöglicht durch Angabe von "+" oder
  1786.                     "-" anstelle eines normalen Schlüssels.
  1787.                     DBGET ließt dann den nächsten bzw.
  1788.                     vorhergehenden Datensatz in lexikalischer
  1789.                     Folge. Durch Angabe von "^" und "*" als
  1790.                     Schlüssel lassen sich der erste bzw. letzte
  1791.                     Satz einer Datenbank lesen.
  1792.  
  1793.                     Das schließt aus, daß echte Schlüssel mit
  1794.                     '^', '*', '+' oder '-' beginnen.
  1795.  
  1796.  
  1797.  
  1798.  
  1799.                                        3-16
  1800.  
  1801.  
  1802.  
  1803.  
  1804.  
  1805.  
  1806.  
  1807.  
  1808.  
  1809.  
  1810.  
  1811.  
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.                                         Dokumentation FranzBasic
  1828.  
  1829.                     Mit DBDELETE kann der zuletzt mit DBGET
  1830.                     oder DBPUT angesprochene Datensatz gelöscht
  1831.                     werden. Der Satz wird nicht physisch
  1832.                     gelöscht, sondern nur mit einem
  1833.                     Löschvermerk versehen.
  1834.  
  1835.                     Überblick über den Inhalt der Datenbank
  1836.                     verschafft DBBROWSE.
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.  
  1853.  
  1854.  
  1855.  
  1856.  
  1857.  
  1858.  
  1859.  
  1860.  
  1861.  
  1862.  
  1863.  
  1864.  
  1865.  
  1866.  
  1867.  
  1868.  
  1869.                                        3-17
  1870.  
  1871.  
  1872.  
  1873.  
  1874.  
  1875.  
  1876.  
  1877.  
  1878.  
  1879.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886.  
  1887.  
  1888.  
  1889.  
  1890.  
  1891.  
  1892.  
  1893.  
  1894.                                                                           1
  1895.  
  1896.  
  1897.                                         Dokumentation FranzBasic
  1898.  
  1899.  
  1900.                     4 Referenzteil
  1901.  
  1902.  
  1903.                                                          Inhalt
  1904.  
  1905.  
  1906.                     4.1Anweisungen zur Daten - Definition
  1907.  
  1908.                     DIM   Feld definieren                 5
  1909.                     LOCAL  Lokale Variable definieren        7
  1910.                     STATIC statische Variable definieren     9
  1911.                     RECTYPERecordtyp definieren            10
  1912.                     RECVAR Record-Element definieren        11
  1913.                     ENDREC Recordtyp-Definition beenden     13
  1914.                     RECORD Record definieren                14
  1915.  
  1916.                     4.2Anweisungen zur Programmablauf
  1917.                        -steuerung
  1918.  
  1919.                     IF    If-Abfrage                       15
  1920.                     FOR   For-Schleife                     18
  1921.                     WHILE  While-Schleife                   20
  1922.                     REPEAT Repeat-Schleife                  22
  1923.                     BREAK  Schleife abbrechen               24
  1924.                     STOP      Programm beenden             25
  1925.                     PAUSE  Programm anhalten                26
  1926.                     GOTO      Label abspringen             27
  1927.                     SUBROUTINE Unterprogramm definieren     28
  1928.                     RETURN Unterprogramm verlassen          32
  1929.                     GOSUB  Unterprogramm aufrufen           34
  1930.  
  1931.                     4.3Befehle zur Dateibearbeitung
  1932.  
  1933.                     OPEN      Datei öffnen                 36
  1934.                     CLOSE  Datei schließen                  39
  1935.                     INPUT  Daten lesen                      40
  1936.  
  1937.  
  1938.  
  1939.                                         4-1
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.  
  1949.  
  1950.  
  1951.  
  1952.  
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962.  
  1963.  
  1964.                                                                           2
  1965.  
  1966.  
  1967.                                         Dokumentation FranzBasic
  1968.  
  1969.                     LINE INPUT "                           42
  1970.                     PRINT  Daten ausgeben                   44
  1971.                     LPRINT Daten ausgeben (Drucker)         46
  1972.                     WRITE  Daten ausgeben                   47
  1973.                     GET   Random-Datei lesen               49
  1974.                     PUT   Random-Datei schreiben           50
  1975.                     ERASE  Datei löschen                    51
  1976.                     RENAME Datei umbenennen                 52
  1977.                     INKEY$ Tastatur prüfen                  53
  1978.                     LASTKEY%   letzte Eingabe prüfen        54
  1979.  
  1980.                     4.4Anweisungen zur Datenbank -
  1981.                        Bearbeitung
  1982.  
  1983.                     DBCREATE   Datenbank kreieren (erzeugen)  
  1984.                                                              55
  1985.                     DBOPEN Datenbank öffnen                 57
  1986.                     DBCLOSEDatenbank schließen              58
  1987.                     DBGET  Datensatz lesen                  59
  1988.                     DBPUT  Datensatz schreiben              61
  1989.                     DBDELETE   Datensatz löschen            62
  1990.                     DBBROWSE   Datenbank durchblättern      63
  1991.  
  1992.                     4.5Mathematische Funktionen
  1993.  
  1994.                     SIN   Sinus                           67
  1995.                     COS   Cosinus                         68
  1996.                     TAN   Tangens                         69
  1997.                     ATN   Arcustangens                     70
  1998.                     EXP   Exponentialfunktion              71
  1999.                     LOG   natürlicher Logarithmus          72
  2000.                     SQR   quadratische Wurzel              73
  2001.  
  2002.                     4.6String-Statements und -Funktionen
  2003.  
  2004.                     SET$      Zeichen setzen               74
  2005.                     DELETE$Zeichen löschen                  75
  2006.  
  2007.  
  2008.  
  2009.                                         4-2
  2010.  
  2011.  
  2012.  
  2013.  
  2014.  
  2015.  
  2016.  
  2017.  
  2018.  
  2019.  
  2020.  
  2021.  
  2022.  
  2023.  
  2024.  
  2025.  
  2026.  
  2027.  
  2028.  
  2029.  
  2030.  
  2031.  
  2032.  
  2033.  
  2034.                                                                           3
  2035.  
  2036.  
  2037.                                         Dokumentation FranzBasic
  2038.  
  2039.                     INSERT$Zeichen einfügen                 76
  2040.                     INSTR% Teilstring suchen                77
  2041.                     LEFT$  linken Teilstring bilden         78
  2042.                     RIGHT$ rechten Teilstring bilden        79
  2043.                     MID$      Teilstring bilden            80
  2044.                     TRIM$  nachfolgende
  2045.                           Leerstellen abschneiden          81
  2046.                     LTRIM$ führende
  2047.                           Leerstellen abschneiden          82
  2048.                     LCASE$ Lowercase bilden                 83
  2049.                     UCASE$ Uppercase bilden                 84
  2050.                     LEN%      Stringlänge feststellen      85
  2051.                     ASC%      ASCII-Wert bilden            86
  2052.                     CHR$      Zeichen aus ASCII-Wert bilden  
  2053.                                                              87
  2054.                     STR$      String aus Zahl bilden       88
  2055.                     VAL   Real aus String bilden           89
  2056.                     VAL%      Integer aus String bilden    90
  2057.  
  2058.                     4.7Bildschirm-Steuerung
  2059.  
  2060.                     CLS   Bildschirm löschen               91
  2061.                     COLOUR Farben einstellen                92
  2062.                     LOCATE Cursor setzen                    93
  2063.  
  2064.                     4.8Verschiedenes
  2065.  
  2066.                     REM   Kommentar                        94
  2067.                     '     Kommentar                        95
  2068.                     ERROR% Runtime-Error feststellen        96
  2069.                     EXEC      externes Programm starten    97
  2070.                     INTERRUPT  Interrupt generieren         99
  2071.                     TIMEDATE$  Zeit und Datum feststellen  100
  2072.  
  2073.                     4.9FranzBasic Spezial
  2074.  
  2075.                     FILES  Dateien zur Auswahl anbieten    101
  2076.  
  2077.  
  2078.  
  2079.                                         4-3
  2080.  
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086.  
  2087.  
  2088.  
  2089.  
  2090.  
  2091.  
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.                                                                           4
  2105.  
  2106.  
  2107.                                         Dokumentation FranzBasic
  2108.  
  2109.                     DIALOG Datenerfassung für Variable     103
  2110.                     FORM      Datenerfassung für Record   104
  2111.                     MENU      Menu erzeugen               106
  2112.                     MESSAGEMeldung erzeugen                108
  2113.                     MOUSE  Maus-Steuerung                  110
  2114.  
  2115.  
  2116.  
  2117.                     Erläuterungen:
  2118.  
  2119.                     Angaben in rechteckigen Klammern [ ] sind
  2120.                     optional.
  2121.  
  2122.                     --> bedeutet Bildschirmausgabe durch das
  2123.                     Programm
  2124.  
  2125.                     <-- bedeutet Tastatureingabe durch den
  2126.                     Benutzer
  2127.  
  2128.                     Mit Benutzer ist innerhalb des
  2129.                     Referenzteils derjenige gemeint, welcher
  2130.                     die mit FranzBasic erstellten Programme
  2131.                     benutzt, er ist prinzipiell zu
  2132.                     unterscheiden von dem Programmierer,
  2133.                     welcher diese Programme mit FranzBasic
  2134.                     erstellt.
  2135.  
  2136.  
  2137.  
  2138.  
  2139.  
  2140.  
  2141.  
  2142.  
  2143.  
  2144.  
  2145.  
  2146.  
  2147.  
  2148.  
  2149.                                         4-4
  2150.  
  2151.  
  2152.  
  2153.  
  2154.  
  2155.  
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.  
  2162.  
  2163.  
  2164.  
  2165.  
  2166.  
  2167.  
  2168.  
  2169.  
  2170.  
  2171.  
  2172.  
  2173.  
  2174.                                                                           5
  2175.  
  2176.  
  2177.                                         Dokumentation FranzBasic
  2178.  
  2179.  
  2180.                     4.1 Anweisungen zur Daten - Definition
  2181.  
  2182.                     Alle in diesem Kapitel genannten
  2183.                     Programmanweisungen (Statements) sind nicht
  2184.                     ausführbar und dienen der Definition von
  2185.                     Daten und Datentypen.
  2186.  
  2187.                                                             DIM
  2188.  
  2189.                     Art:   Statement
  2190.  
  2191.                     Form:
  2192.  
  2193.                         Dim Name(Länge[,Länge..) [,Name(..)..]
  2194.  
  2195.                        Name:        Feldname
  2196.                        Länge:       Integer-Konstante
  2197.  
  2198.                     Beschreibung:
  2199.  
  2200.                     'DIM' legt die Größe von Feldern fest.
  2201.                     <Name> ist ein gültiger Variablenname,
  2202.                     <Länge> die Länge des Felds. Bei
  2203.                     nachfolgender Verwendung des Feldes kann
  2204.                     auf die einzelnen Elemente des Feldes durch
  2205.                     Angabe eines Index zwischen 1 und <Länge>
  2206.                     zugegriffen werden. Mehrdimensionale Felder
  2207.                     sind möglich. Der Typ des Feldes wird
  2208.                     bestimmt durch den Typ von <Name>.
  2209.                     Zugelassen als Grundtyp sind alle einfachen
  2210.                     Datentypen. Innerhalb einer 'DIM'-Anweisung
  2211.                     können mehrere Felder definiert werden. Die
  2212.                     einzelnen Definitionen werden durch Komma
  2213.                     getrennt.
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  
  2219.                                         4-5
  2220.  
  2221.  
  2222.  
  2223.  
  2224.  
  2225.  
  2226.  
  2227.  
  2228.  
  2229.  
  2230.  
  2231.  
  2232.  
  2233.  
  2234.  
  2235.  
  2236.  
  2237.  
  2238.  
  2239.  
  2240.  
  2241.  
  2242.  
  2243.  
  2244.                                                                           6
  2245.  
  2246.  
  2247.                                         Dokumentation FranzBasic
  2248.  
  2249.                     Beispiel:
  2250.  
  2251.                        Dim Int%(10), Str$(20)
  2252.                        Str$(20) = "Zuweisung an Element 20"
  2253.                        If Int%(1) = 0 Then Break
  2254.  
  2255.  
  2256.  
  2257.  
  2258.  
  2259.  
  2260.  
  2261.  
  2262.  
  2263.  
  2264.  
  2265.  
  2266.  
  2267.  
  2268.  
  2269.  
  2270.  
  2271.  
  2272.  
  2273.  
  2274.  
  2275.  
  2276.  
  2277.  
  2278.  
  2279.  
  2280.  
  2281.  
  2282.  
  2283.  
  2284.  
  2285.  
  2286.  
  2287.  
  2288.  
  2289.                                         4-6
  2290.  
  2291.  
  2292.  
  2293.  
  2294.  
  2295.  
  2296.  
  2297.  
  2298.  
  2299.  
  2300.  
  2301.  
  2302.  
  2303.  
  2304.  
  2305.  
  2306.  
  2307.  
  2308.  
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314.                                                                           7
  2315.  
  2316.  
  2317.                                         Dokumentation FranzBasic
  2318.  
  2319.                                                           LOCAL
  2320.  
  2321.                     Art:   Statement
  2322.  
  2323.                     Form:
  2324.  
  2325.                         Local Name [,Name...]
  2326.  
  2327.                        Name:     Variablenname
  2328.  
  2329.                     Beschreibung:
  2330.  
  2331.                     Die Variable <Name> wird als lokale
  2332.                     Variable innerhalb einer Subroutine
  2333.                     deklariert. Die Variable ist dann
  2334.                     ausserhalb der Subroutine nicht bekannt. Im
  2335.                     Gegensatz dazu sind Variablen die im
  2336.                     Verlauf einer Subroutine ohne vorhergehende
  2337.                     'LOCAL'-Deklaration eingeführt werden
  2338.                     'Global', d.h. auf diese Variable können
  2339.                     auch das Hauptprogramm und andere
  2340.                     Subroutines zugreifen. Als lokal
  2341.                     deklarierte Variablen koexistieren mit
  2342.                     globalen Variablen gleichen Namens, die im
  2343.                     Hauptprogramm oder in anderen Subroutines
  2344.                     erzeugt werden.
  2345.  
  2346.                     'LOCAL'-Anweisungen müssen am Anfang der
  2347.                     Subroutine stehen. Sie dürfen nicht die
  2348.                     Namen der Formalparameter haben. Mehrere
  2349.                     Variablen können durch Kommas getrennt
  2350.                     deklariert werden
  2351.  
  2352.  
  2353.  
  2354.  
  2355.  
  2356.  
  2357.  
  2358.  
  2359.                                         4-7
  2360.  
  2361.  
  2362.  
  2363.  
  2364.  
  2365.  
  2366.  
  2367.  
  2368.  
  2369.  
  2370.  
  2371.  
  2372.  
  2373.  
  2374.  
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380.  
  2381.  
  2382.  
  2383.  
  2384.                                                                           8
  2385.  
  2386.  
  2387.                                         Dokumentation FranzBasic
  2388.  
  2389.                     'LOCAL'-Variablen sind flüchtig, d. h.
  2390.                     zwischen zwei Aufrufen der Subroutine
  2391.                     bleibt ihr Wert nicht erhalten. Beim
  2392.                     Eintreten in eine Subroutine ist ihr Wert
  2393.                     unbestimmt.
  2394.  
  2395.                     Beispiel:
  2396.  
  2397.                        Subroutine Sub1(x%)
  2398.                           Local r, a1%
  2399.                           Local s$
  2400.                           ...
  2401.                        Endsub
  2402.  
  2403.                     Siehe auch:
  2404.  
  2405.                     STATIC
  2406.  
  2407.  
  2408.  
  2409.  
  2410.  
  2411.  
  2412.  
  2413.  
  2414.  
  2415.  
  2416.  
  2417.  
  2418.  
  2419.  
  2420.  
  2421.  
  2422.  
  2423.  
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.                                         4-8
  2430.  
  2431.  
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  
  2440.  
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  
  2447.  
  2448.  
  2449.  
  2450.  
  2451.  
  2452.  
  2453.  
  2454.                                                                           9
  2455.  
  2456.  
  2457.                                         Dokumentation FranzBasic
  2458.  
  2459.                                                          STATIC
  2460.  
  2461.                     Art:   Statement
  2462.  
  2463.                     Form:
  2464.  
  2465.                         Static Name [,Name...]
  2466.  
  2467.                        Name:     Variablenname
  2468.  
  2469.                     Beschreibung:
  2470.  
  2471.                     'STATIC' deklariert wie 'LOCAL' lokale
  2472.                     Variablen. Im Gegensatz zu 'LOCAL'-
  2473.                     Variablen sind 'STATIC'-Variablen
  2474.                     nichtflüchtig, d.h. ihr Wert bleibt
  2475.                     zwischen zwei Subroutine-Aufrufen erhalten.
  2476.                     Bei Programmstart ist ihr Wert 0 bei
  2477.                     numerischen Variablen bzw. "" bei
  2478.                     Stringvariablen, genau wie bei globalen
  2479.                     Variablen
  2480.  
  2481.                     Beispiel:
  2482.  
  2483.                           Static a22%, w#
  2484.  
  2485.                     Siehe auch:
  2486.  
  2487.                     LOCAL
  2488.  
  2489.  
  2490.  
  2491.  
  2492.  
  2493.  
  2494.  
  2495.  
  2496.  
  2497.  
  2498.  
  2499.                                         4-9
  2500.  
  2501.  
  2502.  
  2503.  
  2504.  
  2505.  
  2506.  
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512.  
  2513.  
  2514.  
  2515.  
  2516.  
  2517.  
  2518.  
  2519.  
  2520.  
  2521.  
  2522.  
  2523.  
  2524.                                                                           10
  2525.  
  2526.  
  2527.                                         Dokumentation FranzBasic
  2528.  
  2529.                                                         RECTYPE
  2530.  
  2531.                     Art:   Statement
  2532.  
  2533.                     Form:
  2534.  
  2535.                         Rectype Name
  2536.  
  2537.                        Name: Variablen-Name (Real-Konvention)
  2538.  
  2539.                     Beschreibung:
  2540.  
  2541.                     'RECTYPE' definiert einen zusammengesetzten
  2542.                     Datentyp unter dem Typnamen <Name>. Record-
  2543.                     Definitionen durch den Befehl 'RECORD'
  2544.                     beziehen sich auf den hier definierten
  2545.                     Namen <Name>. Die Zusammensetzung des
  2546.                     Records aus einfachen Datentypen wird durch
  2547.                     nachfolgende 'RECVAR'-Anweisungen
  2548.                     definiert. Die Rectype-Definition wird
  2549.                     durch 'ENDREC' abgeschlossen.
  2550.  
  2551.                     <Name> ist ein Variablen-Name nach der
  2552.                     Namens-Konvention für Real-Zahlen, d. h.
  2553.                     ohne Erweiterungszeichen %, &, #, $.
  2554.  
  2555.                     Beispiel:
  2556.  
  2557.                        RECTYPE Artikeltype
  2558.                           RECVAR....
  2559.                        ENDREC
  2560.  
  2561.                     Siehe auch:
  2562.  
  2563.                     RECVAR, ENDREC, RECORD
  2564.  
  2565.  
  2566.  
  2567.  
  2568.  
  2569.                                        4-10
  2570.  
  2571.  
  2572.  
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578.  
  2579.  
  2580.  
  2581.  
  2582.  
  2583.  
  2584.  
  2585.  
  2586.  
  2587.  
  2588.  
  2589.  
  2590.  
  2591.  
  2592.  
  2593.  
  2594.                                                                           11
  2595.  
  2596.  
  2597.                                         Dokumentation FranzBasic
  2598.  
  2599.                                                          RECVAR
  2600.  
  2601.                     Art:   Statement
  2602.  
  2603.                     Form:
  2604.  
  2605.                         Recvar Name Länge[:Nkomma] [,Name..]
  2606.  
  2607.                        Name:     Variablenname (s. u.)
  2608.                        Länge:    Integer-Konstante
  2609.                        Nkomma:   Integer-Konstante
  2610.  
  2611.                     Beschreibung:
  2612.  
  2613.                     'RECVAR'-Anweisungen legen die
  2614.                     Zusammensetzung eines Record-Typs aus
  2615.                     einfachen Datentypen fest. Diese bilden die
  2616.                     Elemente des Records bzw des Record-Typs.
  2617.                     Die einzelnen Elemente eines Recordtyps
  2618.                     können einzeln zeilenweise oder mehrere pro
  2619.                     Zeile durch Kommas getrennt definiert
  2620.                     werden. Den Abschluß der Definitionssequenz
  2621.                     bildet eine 'ENDREC'-Anweisung.
  2622.  
  2623.                     <Name> ist ein Variablenname des Typs Real,
  2624.                     Integer oder String. Long und Double sind
  2625.                     nicht erlaubt.
  2626.  
  2627.                     Reals und Integer werden innerhalb von
  2628.                     Records in ASCII-Darstellung erzeugt. Die
  2629.                     Länge der Zahlen ist variabel, deshalb muß
  2630.                     sie bei der Definition mit <Länge>
  2631.                     festgelegt werden. Bei Reals muß zusätzlich
  2632.                     durch einen Doppelpunkt getrennt die Anzahl
  2633.                     der Nachkommastellen mit <Nkomma>
  2634.                     festgelegt werden. Die Zahl der
  2635.                     Vorkommastellen ist dann <Länge>-<Nkomma>.
  2636.  
  2637.  
  2638.  
  2639.                                        4-11
  2640.  
  2641.  
  2642.  
  2643.  
  2644.  
  2645.  
  2646.  
  2647.  
  2648.  
  2649.  
  2650.  
  2651.  
  2652.  
  2653.  
  2654.  
  2655.  
  2656.  
  2657.  
  2658.  
  2659.  
  2660.  
  2661.  
  2662.  
  2663.  
  2664.                                                                           12
  2665.  
  2666.  
  2667.                                         Dokumentation FranzBasic
  2668.  
  2669.                     Auch Strings haben innerhalb von Records
  2670.                     eine feste Länge, deshalb muß auch hier mit
  2671.                     <Länge> eine maximale Stringlänge
  2672.                     festgelegt werden. Wird einem Recordelement
  2673.                     vom Typ String ein gewöhnlicher String
  2674.                     zugewiesen wird dieser auf die festgelegte
  2675.                     Länge gebracht, entweder durch Abschneiden
  2676.                     überschüssiger Zeichen oder durch Auffüllen
  2677.                     mit Leerzeichen. Beim Zuweisen von String-
  2678.                     Recordelementen an gewöhnliche Strings ist
  2679.                     die Existenz von nachfolgenden Blanks zu
  2680.                     beachten, diese können gegebenenfalls mit
  2681.                     'TRIM$' entfernt werden.
  2682.  
  2683.                     Beispiel
  2684.  
  2685.                        Rectype Atype
  2686.                        ...Recvar a% 6
  2687.                        ...Recvar summe 8:2
  2688.                        ...Recvar str$ 12
  2689.                        Endrec
  2690.  
  2691.                        Record Atype Arec, Arec1
  2692.  
  2693.                        Arec.str$ = "abc"
  2694.                        a$ = Arec.str$
  2695.                        Print "a$=";a$;"!"
  2696.  
  2697.                        -->a$=abc         !
  2698.  
  2699.                              (9 Leerzeichen in a$)
  2700.  
  2701.                     Siehe auch:
  2702.  
  2703.                     RECORD
  2704.  
  2705.  
  2706.  
  2707.  
  2708.  
  2709.                                        4-12
  2710.  
  2711.  
  2712.  
  2713.  
  2714.  
  2715.  
  2716.  
  2717.  
  2718.  
  2719.  
  2720.  
  2721.  
  2722.  
  2723.  
  2724.  
  2725.  
  2726.  
  2727.  
  2728.  
  2729.  
  2730.  
  2731.  
  2732.  
  2733.  
  2734.                                                                           13
  2735.  
  2736.  
  2737.                                         Dokumentation FranzBasic
  2738.  
  2739.                                                          ENDREC
  2740.  
  2741.                     Art:   Statement
  2742.  
  2743.                     Form:
  2744.  
  2745.                         Endrec
  2746.  
  2747.                     Beschreibung:
  2748.  
  2749.                     Die Sequenz der 'RECVAR'-Anweisungen und
  2750.                     damit die Definition eines Record-Typs
  2751.                     durch 'RECTYPE' wird beendet.
  2752.  
  2753.                     Siehe auch:
  2754.  
  2755.                     RECTYPE, RECVAR
  2756.  
  2757.  
  2758.  
  2759.  
  2760.  
  2761.  
  2762.  
  2763.  
  2764.  
  2765.  
  2766.  
  2767.  
  2768.  
  2769.  
  2770.  
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776.  
  2777.  
  2778.  
  2779.                                        4-13
  2780.  
  2781.  
  2782.  
  2783.  
  2784.  
  2785.  
  2786.  
  2787.  
  2788.  
  2789.  
  2790.  
  2791.  
  2792.  
  2793.  
  2794.  
  2795.  
  2796.  
  2797.  
  2798.  
  2799.  
  2800.  
  2801.  
  2802.  
  2803.  
  2804.                                                                           14
  2805.  
  2806.  
  2807.                                         Dokumentation FranzBasic
  2808.  
  2809.                                                          RECORD
  2810.  
  2811.                     Art:   Statement
  2812.  
  2813.                     Form:
  2814.  
  2815.                         Record Rtype Name [,Name...]
  2816.  
  2817.                        Rtype: Name eines Recordtyps
  2818.                        Name      Name des definierten
  2819.                     Records
  2820.  
  2821.                     Beschreibung:
  2822.  
  2823.                     Durch 'RECORD' wird ein Record mit Namen
  2824.                     <Name> definiert der die Struktur des
  2825.                     Record-Typs <Rtype> hat. Auf die Elemente
  2826.                     des Records <Name> wird zugegriffen durch
  2827.                     Angabe von 'Name.Element', wobei Element
  2828.                     der Name eines Record-Elements laut
  2829.                     'RECVAR'-Anweisungen bei der Definition des
  2830.                     Record-Typs <Rtype> ist.
  2831.  
  2832.                     <Name> ist ein Variablen-Name nach der
  2833.                     Namens-Konvention für Fließkomma-Zahlen, d.
  2834.                     h. ohne Erweiterungszeichen %, &, #, $.
  2835.  
  2836.                     Mit einer 'RECORD' Anweisung können mehrere
  2837.                     Records definiert werden, ihre Namen werden
  2838.                     durch Komma getrennt.
  2839.  
  2840.                     Beispiel:
  2841.  
  2842.                        siehe RECTYPE.
  2843.  
  2844.  
  2845.  
  2846.  
  2847.  
  2848.  
  2849.                                        4-14
  2850.  
  2851.  
  2852.  
  2853.  
  2854.  
  2855.  
  2856.  
  2857.  
  2858.  
  2859.  
  2860.  
  2861.  
  2862.  
  2863.  
  2864.  
  2865.  
  2866.  
  2867.  
  2868.  
  2869.  
  2870.  
  2871.  
  2872.  
  2873.  
  2874.                                                                           15
  2875.  
  2876.  
  2877.                                         Dokumentation FranzBasic
  2878.  
  2879.  
  2880.                     4.2 Anweisungen zur Programmablaufsteuerung
  2881.  
  2882.                                                              IF
  2883.  
  2884.                     Art:   Statement
  2885.  
  2886.                     Form:
  2887.  
  2888.                     1.  If Ausdruck Then Statement
  2889.  
  2890.                     2.  If Ausdruck Then
  2891.                           ...
  2892.                        [ Elseif Ausdruck Then
  2893.                           ...]
  2894.                        [ Else
  2895.                           ...]
  2896.                         Endif
  2897.  
  2898.                        Ausdruck:     logischer Ausdruck
  2899.                        Statement: einfache
  2900.                                 Programmanweisung
  2901.                        ...      eine oder mehrere
  2902.                                 Anweisungen
  2903.  
  2904.                     Beschreibung:
  2905.  
  2906.                     Die 'IF'-Anweisung ist in zwei Formen
  2907.                     möglich. In der ersten Form besteht die
  2908.                     ganze Anweisung aus einer Zeile. Falls der
  2909.                     logische Ausdruck <Ausdruck> WAHR ist wird
  2910.                     die Programm-Anweisung <Statement>
  2911.                     ausgeführt, bei FALSCH wird keine Anweisung
  2912.                     ausgeführt. <Statement> ist eine einfache
  2913.                     Anweisung, d.h. es dürfen nicht mehrere
  2914.                     Anweisungen durch ':' getrennt nach 'THEN'
  2915.                     folgen.
  2916.  
  2917.  
  2918.  
  2919.                                        4-15
  2920.  
  2921.  
  2922.  
  2923.  
  2924.  
  2925.  
  2926.  
  2927.  
  2928.  
  2929.  
  2930.  
  2931.  
  2932.  
  2933.  
  2934.  
  2935.  
  2936.  
  2937.  
  2938.  
  2939.  
  2940.  
  2941.  
  2942.  
  2943.  
  2944.                                                                           16
  2945.  
  2946.  
  2947.                                         Dokumentation FranzBasic
  2948.  
  2949.                     In der zweiten Form steht hinter 'THEN'
  2950.                     keine Anweisung. Es folgen eine oder
  2951.                     mehrere Zeilen mit Programmanweisungen, bis
  2952.                     die 'IF'-Anweisung mit 'ENDIF'
  2953.                     abgeschlossen wird.
  2954.  
  2955.                     Wahlweise können innerhalb der
  2956.                     'IF'...'ENDIF'-Sequenz eine oder mehrere
  2957.                     'ELSEIF' und eine 'ELSE'-Anweisung stehen.
  2958.                     Nach einer 'ELSE'-Anweisung können keine
  2959.                     'ELSEIF'-Anweisungen mehr folgen. Die
  2960.                     Anweisungen zwischen 'ELSE' und 'ENDIF'
  2961.                     werden ausgeführt wenn sowohl <Ausdruck>
  2962.                     aus der 'IF'-Anweisung als auch <Ausdruck>
  2963.                     aus allen vorhergehenden 'ELSEIF'-
  2964.                     Anweisungen FALSCH sind
  2965.  
  2966.                     Anweisungen die auf eine 'ELSEIF'-Anweisung
  2967.                     folgen werden ausgeführt, wenn <Ausdruck>
  2968.                     der 'ELSEIF'-Anweisung WAHR ist und
  2969.                     <Ausdruck> der 'IF'-Anweisung und
  2970.                     <Ausdruck> aller eventuell vorhergehenden
  2971.                     'ELSEIF'-Anweisungen FALSCH sind. Weiter
  2972.                     folgende 'ELSEIF'-Anweisungen (wenn
  2973.                     vorhanden) werden dann nicht mehr geprüft.
  2974.  
  2975.  
  2976.  
  2977.  
  2978.  
  2979.  
  2980.  
  2981.  
  2982.  
  2983.  
  2984.  
  2985.  
  2986.  
  2987.  
  2988.  
  2989.                                        4-16
  2990.  
  2991.  
  2992.  
  2993.  
  2994.  
  2995.  
  2996.  
  2997.  
  2998.  
  2999.  
  3000.  
  3001.  
  3002.  
  3003.  
  3004.  
  3005.  
  3006.  
  3007.  
  3008.  
  3009.  
  3010.  
  3011.  
  3012.  
  3013.  
  3014.                                                                           17
  3015.  
  3016.  
  3017.                                         Dokumentation FranzBasic
  3018.  
  3019.                     Beispiel
  3020.  
  3021.                        Input a%
  3022.                        If a% = 1 Then
  3023.                           Gosub Sub1()
  3024.                        Elseif a% = 2 Then
  3025.                           Gosub Sub2()
  3026.                        Elseif a% = 3 Then
  3027.                           Gosub Sub3()
  3028.                        Else
  3029.                           Print "Fehlanzeige"
  3030.                        Endif
  3031.  
  3032.  
  3033.  
  3034.  
  3035.  
  3036.  
  3037.  
  3038.  
  3039.  
  3040.  
  3041.  
  3042.  
  3043.  
  3044.  
  3045.  
  3046.  
  3047.  
  3048.  
  3049.  
  3050.  
  3051.  
  3052.  
  3053.  
  3054.  
  3055.  
  3056.  
  3057.  
  3058.  
  3059.                                        4-17
  3060.  
  3061.  
  3062.  
  3063.  
  3064.  
  3065.  
  3066.  
  3067.  
  3068.  
  3069.  
  3070.  
  3071.  
  3072.  
  3073.  
  3074.  
  3075.  
  3076.  
  3077.  
  3078.  
  3079.  
  3080.  
  3081.  
  3082.  
  3083.  
  3084.                                                                           18
  3085.  
  3086.  
  3087.                                         Dokumentation FranzBasic
  3088.  
  3089.                                                  FOR ... ENDFOR
  3090.  
  3091.                     Art:   Statement
  3092.  
  3093.                     Form:
  3094.  
  3095.                         For Zähl = Anf To Ende [Step Schritt]
  3096.                           ...
  3097.                         Endfor
  3098.  
  3099.                        Zähl:  Integer, Real, Long,
  3100.                              Double - Variable
  3101.                        Anf, Ende, Schritt:
  3102.                              Integer, Real, Long, Double
  3103.  
  3104.  
  3105.                     Beschreibung:
  3106.  
  3107.                     Die FOR-Anweisung stellt eine Programm-
  3108.                     Schleife dar. Die Programmanweisungen
  3109.                     zwischen 'FOR' und 'ENDFOR' werden unter
  3110.                     Kontrolle der Variablen <Zähl> wiederholt
  3111.                     durchlaufen. <Zähl> wird zunächst auf den
  3112.                     Wert <Anf> gesetzt. Bei jedem Durchlauf
  3113.                     wird ihr Wert um <Schritt> erhöht. Ist der
  3114.                     Anweisungsteil 'STEP Schritt' nicht
  3115.                     vorhanden, wird 1 als Schrittweite
  3116.                     angenommen. Wenn <Zähl> = <Ende> ist, wird
  3117.                     die Schleife nach dem Durchlauf bei
  3118.                     'ENDFOR' verlassen.
  3119.  
  3120.                     <Anf>, <Ende>, <Schritt> können Konstanten
  3121.                     oder Variablen sein. Sie sollten alle vom
  3122.                     gleichen Typ sein, um Wandlungsoperationen
  3123.                     zwischen den einzelnen Typen zu vermeiden.
  3124.  
  3125.  
  3126.  
  3127.  
  3128.  
  3129.                                        4-18
  3130.  
  3131.  
  3132.  
  3133.  
  3134.  
  3135.  
  3136.  
  3137.  
  3138.  
  3139.  
  3140.  
  3141.  
  3142.  
  3143.  
  3144.  
  3145.  
  3146.  
  3147.  
  3148.  
  3149.  
  3150.  
  3151.  
  3152.  
  3153.  
  3154.                                                                           19
  3155.  
  3156.  
  3157.                                         Dokumentation FranzBasic
  3158.  
  3159.                     Als <Zähl> und damit entsprechend letztem
  3160.                     Abschnitt auch <Anf>, <Ende>, <Schritt>
  3161.                     sollten nur Integer- oder Long-Variablen
  3162.                     eingesetzt werden, da Real- und Double-
  3163.                     Variablen nur eine beschränkte Genauigkeit
  3164.                     haben. Damit ist der Vergleich ob <Zähl> =
  3165.                     <Ende> ist im allgemeinen nicht korrekt
  3166.                     durchzuführen! Die Schleife wird nicht
  3167.                     beendet und läuft endlos.
  3168.  
  3169.                     Da der Zahlenbereich von Integers im
  3170.                     allgemeinen ausreichend ist, werden sie
  3171.                     bevorzugt als <Zähl> in 'FOR'-Schleifen
  3172.                     eingesetzt.
  3173.  
  3174.                     'FOR'-Schleifen können vorzeitig durch die
  3175.                     'BREAK'-Anweisung verlassen werden. Wird
  3176.                     eine 'BREAK'-Anweisung beim Durchlaufen
  3177.                     einer 'FOR'-Schleife erkannt, wird sofort
  3178.                     zur nächsten Anweisung nach 'ENDFOR'
  3179.                     verzweigt.
  3180.  
  3181.                     Beispiel
  3182.  
  3183.                        For i% = 1 To 20
  3184.                           s% = s% + i%
  3185.                           If s% > 100 Then Break
  3186.                           'Vorzeitiger Abbruch
  3187.                           Print "i%=";i%*10
  3188.                        Endfor
  3189.  
  3190.                     Siehe auch:
  3191.  
  3192.                     BREAK
  3193.  
  3194.  
  3195.  
  3196.  
  3197.  
  3198.  
  3199.                                        4-19
  3200.  
  3201.  
  3202.  
  3203.  
  3204.  
  3205.  
  3206.  
  3207.  
  3208.  
  3209.  
  3210.  
  3211.  
  3212.  
  3213.  
  3214.  
  3215.  
  3216.  
  3217.  
  3218.  
  3219.  
  3220.  
  3221.  
  3222.  
  3223.  
  3224.                                                                           20
  3225.  
  3226.  
  3227.                                         Dokumentation FranzBasic
  3228.  
  3229.                                                  WHILE ... WEND
  3230.  
  3231.                     Art:   Statement
  3232.  
  3233.                     Form:
  3234.  
  3235.                         While Ausdruck
  3236.                           ...
  3237.                         Wend
  3238.  
  3239.                        Ausdruck:     Logischer Ausdruck
  3240.  
  3241.                     Beschreibung:
  3242.  
  3243.                     'WHILE' leitet eine Programm-Schleife ein,
  3244.                     die solange durchlaufen wird wie der
  3245.                     logische Ausdruck <Ausdruck> WAHR ist. Ist
  3246.                     <Ausdruck> bei Eintritt in die Schleife
  3247.                     FALSCH, wird diese nicht durchlaufen,
  3248.                     sondern direkt hinter das Ende der
  3249.                     Programmschleife verzweigt. Das Ende der
  3250.                     Programmschleife wird durch 'WEND'
  3251.                     markiert.
  3252.  
  3253.                     Unabhängig vom Ergebnis von <Ausdruck> kann
  3254.                     die Schleife mit 'BREAK' verlassen werden.
  3255.                     Wird eine 'BREAK'-Anweisung beim
  3256.                     Durchlaufen einer 'WHILE'-Schleife erkannt,
  3257.                     wird sofort zur nächsten Anweisung nach
  3258.                     'WEND' verzweigt.
  3259.  
  3260.  
  3261.  
  3262.  
  3263.  
  3264.  
  3265.  
  3266.  
  3267.  
  3268.  
  3269.                                        4-20
  3270.  
  3271.  
  3272.  
  3273.  
  3274.  
  3275.  
  3276.  
  3277.  
  3278.  
  3279.  
  3280.  
  3281.  
  3282.  
  3283.  
  3284.  
  3285.  
  3286.  
  3287.  
  3288.  
  3289.  
  3290.  
  3291.  
  3292.  
  3293.  
  3294.                                                                           21
  3295.  
  3296.  
  3297.                                         Dokumentation FranzBasic
  3298.  
  3299.                     Beispiel
  3300.  
  3301.                        i% = 0
  3302.                        While i% <= 20
  3303.                           s% = s% + i%
  3304.                           If s% > 100 Then Break
  3305.                           'Vorzeitiger Abbruch
  3306.                           Print "i%=";i%*10
  3307.                        Wend
  3308.  
  3309.                     Siehe auch:
  3310.  
  3311.                     BREAK
  3312.  
  3313.  
  3314.  
  3315.  
  3316.  
  3317.  
  3318.  
  3319.  
  3320.  
  3321.  
  3322.  
  3323.  
  3324.  
  3325.  
  3326.  
  3327.  
  3328.  
  3329.  
  3330.  
  3331.  
  3332.  
  3333.  
  3334.  
  3335.  
  3336.  
  3337.  
  3338.  
  3339.                                        4-21
  3340.  
  3341.  
  3342.  
  3343.  
  3344.  
  3345.  
  3346.  
  3347.  
  3348.  
  3349.  
  3350.  
  3351.  
  3352.  
  3353.  
  3354.  
  3355.  
  3356.  
  3357.  
  3358.  
  3359.  
  3360.  
  3361.  
  3362.  
  3363.  
  3364.                                                                           22
  3365.  
  3366.  
  3367.                                         Dokumentation FranzBasic
  3368.  
  3369.                                                REPEAT ... UNTIL
  3370.  
  3371.                     Art:   Statement
  3372.  
  3373.                     Form:
  3374.  
  3375.                         Repeat
  3376.                           ...
  3377.                         Until Ausdruck
  3378.  
  3379.                        Ausdruck:     Logischer Ausdruck
  3380.  
  3381.                     'REPEAT' leitet eine Programmschleife ein,
  3382.                     die durch 'UNTIL' abgeschlossen wird. Ist
  3383.                     <Ausdruck> bei Überprüfung durch 'UNTIL'
  3384.                     FALSCH wird die Schleife wiederholt, ist
  3385.                     sie WAHR wird die Schleife verlassen und
  3386.                     zur nächsten Anweisung fortgeschritten.
  3387.  
  3388.                     Im Gegensatz zur 'WHILE'-Schleife wird die
  3389.                     'REPEAT'-Schleife immer mindestens einmal
  3390.                     durchlaufen, da über die Wiederholung der
  3391.                     Schleife erst am Schleifenende durch
  3392.                     'UNTIL' entschieden wird.
  3393.  
  3394.                     Wird eine 'BREAK'-Anweisung beim
  3395.                     Durchlaufen einer 'REPEAT'-Schleife
  3396.                     erkannt, wird sofort zur nächsten Anweisung
  3397.                     nach 'UNTIL' verzweigt.
  3398.  
  3399.  
  3400.  
  3401.  
  3402.  
  3403.  
  3404.  
  3405.  
  3406.  
  3407.  
  3408.  
  3409.                                        4-22
  3410.  
  3411.  
  3412.  
  3413.  
  3414.  
  3415.  
  3416.  
  3417.  
  3418.  
  3419.  
  3420.  
  3421.  
  3422.  
  3423.  
  3424.  
  3425.  
  3426.  
  3427.  
  3428.  
  3429.  
  3430.  
  3431.  
  3432.  
  3433.  
  3434.                                                                           23
  3435.  
  3436.  
  3437.                                         Dokumentation FranzBasic
  3438.  
  3439.                     Beispiel:
  3440.  
  3441.                        i% = 0
  3442.                        Repeat
  3443.                           s% = s% + i%
  3444.                           If s% > 100 Then Break
  3445.                           'Vorzeitiger Abbruch
  3446.                           Print "i%=";i%*10
  3447.                        Until i% > 20
  3448.  
  3449.                     Siehe auch:
  3450.  
  3451.                     BREAK
  3452.  
  3453.  
  3454.  
  3455.  
  3456.  
  3457.  
  3458.  
  3459.  
  3460.  
  3461.  
  3462.  
  3463.  
  3464.  
  3465.  
  3466.  
  3467.  
  3468.  
  3469.  
  3470.  
  3471.  
  3472.  
  3473.  
  3474.  
  3475.  
  3476.  
  3477.  
  3478.  
  3479.                                        4-23
  3480.  
  3481.  
  3482.  
  3483.  
  3484.  
  3485.  
  3486.  
  3487.  
  3488.  
  3489.  
  3490.  
  3491.  
  3492.  
  3493.  
  3494.  
  3495.  
  3496.  
  3497.  
  3498.  
  3499.  
  3500.  
  3501.  
  3502.  
  3503.  
  3504.                                                                           24
  3505.  
  3506.  
  3507.                                         Dokumentation FranzBasic
  3508.  
  3509.                                                           BREAK
  3510.  
  3511.                     Art:   Statement
  3512.  
  3513.                     Form:
  3514.  
  3515.                         Break
  3516.  
  3517.                     Beschreibung:
  3518.  
  3519.                     Durch 'BREAK' wird die momentan
  3520.                     abgearbeitete Schleife bedingungslos
  3521.                     verlassen. Die Programmausführung wird mit
  3522.                     der nächsten Anweisung nach dem
  3523.                     Schleifenende fortgesetzt.
  3524.  
  3525.                     Ausserhalb von Schleifen ist die Verwendung
  3526.                     von 'BREAK' nicht zugelassen.
  3527.  
  3528.                     Siehe auch:
  3529.  
  3530.                     FOR, WHILE, REPEAT
  3531.  
  3532.  
  3533.  
  3534.  
  3535.  
  3536.  
  3537.  
  3538.  
  3539.  
  3540.  
  3541.  
  3542.  
  3543.  
  3544.  
  3545.  
  3546.  
  3547.  
  3548.  
  3549.                                        4-24
  3550.  
  3551.  
  3552.  
  3553.  
  3554.  
  3555.  
  3556.  
  3557.  
  3558.  
  3559.  
  3560.  
  3561.  
  3562.  
  3563.  
  3564.  
  3565.  
  3566.  
  3567.  
  3568.  
  3569.  
  3570.  
  3571.  
  3572.  
  3573.  
  3574.                                                                           25
  3575.  
  3576.  
  3577.                                         Dokumentation FranzBasic
  3578.  
  3579.                                                            STOP
  3580.  
  3581.                     Art:   Statement
  3582.  
  3583.                     Form:
  3584.  
  3585.                         Stop
  3586.  
  3587.                     Beschreibung:
  3588.  
  3589.                     'STOP' beendet den Programmablauf. Am Ende
  3590.                     eines Programmtexts braucht 'STOP' nicht zu
  3591.                     stehen, es wird vom Übersetzer automatisch
  3592.                     eingefügt.
  3593.  
  3594.                     Beispiel:
  3595.  
  3596.                        Open "I",#1,"File1"
  3597.                        If error%() <> 0 Then Stop
  3598.  
  3599.                           'Abbruch bei Open-Error
  3600.  
  3601.  
  3602.  
  3603.  
  3604.  
  3605.  
  3606.  
  3607.  
  3608.  
  3609.  
  3610.  
  3611.  
  3612.  
  3613.  
  3614.  
  3615.  
  3616.  
  3617.  
  3618.  
  3619.                                        4-25
  3620.  
  3621.  
  3622.  
  3623.  
  3624.  
  3625.  
  3626.  
  3627.  
  3628.  
  3629.  
  3630.  
  3631.  
  3632.  
  3633.  
  3634.  
  3635.  
  3636.  
  3637.  
  3638.  
  3639.  
  3640.  
  3641.  
  3642.  
  3643.  
  3644.                                                                           26
  3645.  
  3646.  
  3647.                                         Dokumentation FranzBasic
  3648.  
  3649.                                                           PAUSE
  3650.  
  3651.                     Art:   Statement
  3652.  
  3653.                     Form:
  3654.  
  3655.                         Pause [Str$]
  3656.  
  3657.                        Str$:     String
  3658.  
  3659.                     Beschreibung:
  3660.  
  3661.                     'PAUSE' gibt den String <Str$> auf den
  3662.                     Bildschirm aus und hält das Programm an.
  3663.                     Erst wenn der Benutzer eine beliebige Taste
  3664.                     auf der Tastatur gedrückt hat, wird der
  3665.                     Programmablauf fortgesetzt.
  3666.  
  3667.                     Fehlt <Str$> wird stattdessen ein
  3668.                     Doppelpunkt ausgegeben
  3669.  
  3670.                     Beispiel:
  3671.  
  3672.                        Pause "Bitte Diskette in A: einlegen"
  3673.  
  3674.  
  3675.  
  3676.  
  3677.  
  3678.  
  3679.  
  3680.  
  3681.  
  3682.  
  3683.  
  3684.  
  3685.  
  3686.  
  3687.  
  3688.  
  3689.                                        4-26
  3690.  
  3691.  
  3692.  
  3693.  
  3694.  
  3695.  
  3696.  
  3697.  
  3698.  
  3699.  
  3700.  
  3701.  
  3702.  
  3703.  
  3704.  
  3705.  
  3706.  
  3707.  
  3708.  
  3709.  
  3710.  
  3711.  
  3712.  
  3713.  
  3714.                                                                           27
  3715.  
  3716.  
  3717.                                         Dokumentation FranzBasic
  3718.  
  3719.                                                            GOTO
  3720.  
  3721.                     Art:   Statement
  3722.  
  3723.                     Form:
  3724.  
  3725.                         Goto Label
  3726.  
  3727.                     Beschreibung:
  3728.  
  3729.                     'GOTO' bewirkt eine unbedingte Verzweigung
  3730.                     des Programmablaufs zu der Anweisung,
  3731.                     welche auf die Sprungmarke <Label> folgt.
  3732.                     <Label> ist ein beliebiger alphanumerischer
  3733.                     Name mit einem angehängtem ':'. Auf der
  3734.                     gleichen Zeile darf keine Programmanweisung
  3735.                     stehen.
  3736.  
  3737.                     Beispiel:
  3738.  
  3739.                        If a% = 0 Then Goto Ende
  3740.                        Ende:
  3741.                        Stop
  3742.  
  3743.  
  3744.  
  3745.  
  3746.  
  3747.  
  3748.  
  3749.  
  3750.  
  3751.  
  3752.  
  3753.  
  3754.  
  3755.  
  3756.  
  3757.  
  3758.  
  3759.                                        4-27
  3760.  
  3761.  
  3762.  
  3763.  
  3764.  
  3765.  
  3766.  
  3767.  
  3768.  
  3769.  
  3770.  
  3771.  
  3772.  
  3773.  
  3774.  
  3775.  
  3776.  
  3777.  
  3778.  
  3779.  
  3780.  
  3781.  
  3782.  
  3783.  
  3784.                                                                           28
  3785.  
  3786.  
  3787.                                         Dokumentation FranzBasic
  3788.  
  3789.                                                      SUBROUTINE
  3790.  
  3791.                     Art:   Statement
  3792.  
  3793.                     Form:
  3794.  
  3795.                         Subroutine Name[([VAR]Par[,...)]]
  3796.                           ...
  3797.                         Endsub
  3798.  
  3799.                        Name:     Variablenname
  3800.                        VAR:         reserviertes Wort
  3801.                        Par:         Variablenname
  3802.  
  3803.                     Beschreibung:
  3804.  
  3805.                     'SUBROUTINE' leitet ein Unterprogramm ein.
  3806.                     Alle nachfolgenden Programmanweisungen sind
  3807.                     Bestandteil des Unterprogramms, bis dieses
  3808.                     durch die Anweisung 'ENDSUB' abgeschlossen
  3809.                     wird.
  3810.  
  3811.                     <Name> ist der Name des Unterprogramms, auf
  3812.                     den sich Aufrufe des Unterprogramms
  3813.                     beziehen. Ein Unterprogramm kann sowohl als
  3814.                     Prozedur durch die Anweisung 'GOSUB' als
  3815.                     auch als Funktion in einem arithmetischen
  3816.                     Ausdruck durch Nennung von <Name>
  3817.                     aufgerufen werden. Soll ein Unterprogramm
  3818.                     als Funktion aufgerufen werden (siehe
  3819.                     Beispiel) muss der Unterprogramm-Name
  3820.                     <Name> durch ein Paar runder Klammern
  3821.                     gefolgt werden, auch wenn durch
  3822.                     'SUBROUTINE' ein Unterprogramm ohne
  3823.                     Parameter definiert wird.
  3824.  
  3825.  
  3826.  
  3827.  
  3828.  
  3829.                                        4-28
  3830.  
  3831.  
  3832.  
  3833.  
  3834.  
  3835.  
  3836.  
  3837.  
  3838.  
  3839.  
  3840.  
  3841.  
  3842.  
  3843.  
  3844.  
  3845.  
  3846.  
  3847.  
  3848.  
  3849.  
  3850.  
  3851.  
  3852.  
  3853.  
  3854.                                                                           29
  3855.  
  3856.  
  3857.                                         Dokumentation FranzBasic
  3858.  
  3859.                     Der Name des Unterprogramms legt auch
  3860.                     seinen Datentyp fest, analog zu den
  3861.                     Namenskonventionen für den Datentype von
  3862.                     Variablen. Dies ist wichtig für
  3863.                     Unterprogramme, die als Funktion in
  3864.                     arithmetischen Ausdrücken aufgerufen werden
  3865.                     sollen und mit 'RETURN' einen Wert
  3866.                     zurückgeben.
  3867.  
  3868.                     Wenn ein Unterprogramm keine Parameter
  3869.                     übernimmt kann <Name> durch ein Paar leerer
  3870.                     runder Klammern '()' gefolgt werden, diese
  3871.                     können jedoch auch fehlen.
  3872.  
  3873.                     Ansonsten werden zwischen runden Klammern
  3874.                     die Formal-Parameter <Par> des
  3875.                     Unterprogramms definiert. Dieses sind
  3876.                     beliebige Variablen (einfache Datentypen,
  3877.                     Felder, Records) die als Platzhalter für
  3878.                     die Aktual-Parameter stehen, die beim
  3879.                     Unterprogrammaufruf übergeben werden. Beim
  3880.                     Aufruf eines Unterprogramms müssen Formal-
  3881.                     und Aktual-Parameter nach Zahl und Art
  3882.                     übereinstimmen. Bei Feldern muss in
  3883.                     Klammern die Anzahl der Dimension des
  3884.                     Feldes angedeutet werden. Soll zum Beispiel
  3885.                     ein zweidimensionales Feld beim
  3886.                     Unterprogrammaufruf übergeben werden, muß
  3887.                     der Formalparameter z. B. 'Feld(,)' heißen.
  3888.                     Bei Records muß das reservierte Word
  3889.                     'RECORD', dann der Record-Type, dann der
  3890.                     Formalparametername angegeben werden (siehe
  3891.                     Beispiel).
  3892.  
  3893.                     Hat das Unterprogramm als Formalparameter
  3894.                     einen einfachen Datentyp, kann dieser beim
  3895.                     Aufruf auch durch ein Feld-Element eines
  3896.  
  3897.  
  3898.  
  3899.                                        4-29
  3900.  
  3901.  
  3902.  
  3903.  
  3904.  
  3905.  
  3906.  
  3907.  
  3908.  
  3909.  
  3910.  
  3911.  
  3912.  
  3913.  
  3914.  
  3915.  
  3916.  
  3917.  
  3918.  
  3919.  
  3920.  
  3921.  
  3922.  
  3923.  
  3924.                                                                           30
  3925.  
  3926.  
  3927.                                         Dokumentation FranzBasic
  3928.  
  3929.                     Feldes vom gleichen Typ abgedeckt werden
  3930.                     als Aktual-Parameter
  3931.  
  3932.                     Formal-Parameter werden vom Übersetzer wie
  3933.                     lokale Variablen behandelt (siehe 'LOCAL')
  3934.                     und können wie diese innerhalb des
  3935.                     Unterprogramms verarbeitet werden. Einfache
  3936.                     Datentypen werden 'by value' übergeben,
  3937.                     Felder und Records 'by reference'. 'by
  3938.                     value' bedeutet, daß bei
  3939.                     Unterprogrammaufruf eine lokale Kopie des
  3940.                     übergebenen Aktualparameters erzeugt und
  3941.                     der Wert hierin abgelegt wird. Bei Änderung
  3942.                     der Variablen wird die Kopie verändert, das
  3943.                     Original im rufenden Programm bleibt
  3944.                     erhalten. 'by reference' bedeutet, daß die
  3945.                     Adresse des Aktualparameter übergebenen
  3946.                     wird und Änderungen das Original ändern.
  3947.  
  3948.                     Felder und Records lassen sich wegen ihrer
  3949.                     Größe nur 'by reference' übergeben. Bei
  3950.                     einfachen Datentypen läßt sich eine
  3951.                     Übergabe 'by reference' anstelle der
  3952.                     standardmäßigen Übergabe 'by value' durch
  3953.                     Angabe des reservierten Wortes 'VAR' vor
  3954.                     dem Namen des Formal-Parameter by der
  3955.                     'SUBROUTINE'-Deklaration erzwingen. Diesen
  3956.                     Formal-Parametern dürfen dann beim
  3957.                     Unterprogramm-Aufruf keine Konstanten
  3958.                     übergeben werden!
  3959.  
  3960.                     Ein Unterprogramm muß definiert sein, bevor
  3961.                     sein Name im Programmtext als Aufruf
  3962.                     erscheint. Unterprogramme können von
  3963.                     anderen Unterprogrammen gerufen werden.
  3964.  
  3965.  
  3966.  
  3967.  
  3968.  
  3969.                                        4-30
  3970.  
  3971.  
  3972.  
  3973.  
  3974.  
  3975.  
  3976.  
  3977.  
  3978.  
  3979.  
  3980.  
  3981.  
  3982.  
  3983.  
  3984.  
  3985.  
  3986.  
  3987.  
  3988.  
  3989.  
  3990.  
  3991.  
  3992.  
  3993.  
  3994.                                                                           31
  3995.  
  3996.  
  3997.                                         Dokumentation FranzBasic
  3998.  
  3999.                     Beispiel:
  4000.  
  4001.                        Dim areal(10,10)
  4002.  
  4003.                        Subroutine Sub1%(a$, a(,), b%, Record
  4004.                                       Rtype R)
  4005.                           Local i%, d%
  4006.                           d% = 0
  4007.                           For i% = 1 To b%
  4008.                              d% = d% + a(i%,i%)
  4009.                           Endfor
  4010.                           Print a$
  4011.                           Return d%
  4012.                        Endsub
  4013.  
  4014.                        Gosub Sub1(meldung$(23), areal, 5, R1)
  4015.                        Dgnl% = Sub1("Funktion", areal, 3, R1)
  4016.  
  4017.  
  4018.                     Dieses Beispiel zeigt ein Unterprogramm von
  4019.                     Typ Integer. Es zeigt sowohl Eigenschaft
  4020.                     einer Funktion, indem es eine Wert
  4021.                     zurückgibt, der in arithmetischen
  4022.                     Ausdrücken verarbeitet wird, als auch
  4023.                     Eigenschaften einer Prozedur, indem es eine
  4024.                     Meldung ausgibt, ohne das das rufende
  4025.                     Programm dieses unmittelbar gewahr wird.
  4026.  
  4027.                     Siehe auch:
  4028.  
  4029.                     GOSUB, RETURN
  4030.  
  4031.  
  4032.  
  4033.  
  4034.  
  4035.  
  4036.  
  4037.  
  4038.  
  4039.                                        4-31
  4040.  
  4041.  
  4042.  
  4043.  
  4044.  
  4045.  
  4046.  
  4047.  
  4048.  
  4049.  
  4050.  
  4051.  
  4052.  
  4053.  
  4054.  
  4055.  
  4056.  
  4057.  
  4058.  
  4059.  
  4060.  
  4061.  
  4062.  
  4063.  
  4064.                                                                           32
  4065.  
  4066.  
  4067.                                         Dokumentation FranzBasic
  4068.  
  4069.                                                          RETURN
  4070.  
  4071.                     Art:   Statement
  4072.  
  4073.                     Form:
  4074.  
  4075.                         Return Wert
  4076.  
  4077.                        Wert:        Variable, Konstante
  4078.  
  4079.                     Beschreibung:
  4080.  
  4081.                     'RETURN' beendet ein Unterprogramm und gibt
  4082.                     dem aufrufenden Programmteil den Wert
  4083.                     <Wert> zurück. 'RETURN' kann am Ende eines
  4084.                     Unterprogramms stehen, aber auch an
  4085.                     beliebiger Stelle für einen vorzeitigen
  4086.                     Abbruch. Ein Unterprogramm braucht keine
  4087.                     'RETURN'-Anweisung zu enthalten, es wird
  4088.                     dann an der 'ENDSUB'-Anweisung beendet.
  4089.  
  4090.                     Der Datentyp von <Wert> muß mit dem
  4091.                     Datentyp des Unterprogramms übereinstimmen.
  4092.  
  4093.                     Außerhalb von Unterprogrammen ist 'RETURN'
  4094.                     nicht zugelassen.
  4095.  
  4096.  
  4097.  
  4098.  
  4099.  
  4100.  
  4101.  
  4102.  
  4103.  
  4104.  
  4105.  
  4106.  
  4107.  
  4108.  
  4109.                                        4-32
  4110.  
  4111.  
  4112.  
  4113.  
  4114.  
  4115.  
  4116.  
  4117.  
  4118.  
  4119.  
  4120.  
  4121.  
  4122.  
  4123.  
  4124.  
  4125.  
  4126.  
  4127.  
  4128.  
  4129.  
  4130.  
  4131.  
  4132.  
  4133.  
  4134.                                                                           33
  4135.  
  4136.  
  4137.                                         Dokumentation FranzBasic
  4138.  
  4139.                     Beispiel:
  4140.  
  4141.                        Subroutine Sub2%()
  4142.                           ...
  4143.                           If ... Then Return 0.0
  4144.                           ...
  4145.                           Return a
  4146.                        Endsub
  4147.  
  4148.  
  4149.                     Siehe auch:
  4150.  
  4151.                     SUBROUTINE
  4152.  
  4153.  
  4154.  
  4155.  
  4156.  
  4157.  
  4158.  
  4159.  
  4160.  
  4161.  
  4162.  
  4163.  
  4164.  
  4165.  
  4166.  
  4167.  
  4168.  
  4169.  
  4170.  
  4171.  
  4172.  
  4173.  
  4174.  
  4175.  
  4176.  
  4177.  
  4178.  
  4179.                                        4-33
  4180.  
  4181.  
  4182.  
  4183.  
  4184.  
  4185.  
  4186.  
  4187.  
  4188.  
  4189.  
  4190.  
  4191.  
  4192.  
  4193.  
  4194.  
  4195.  
  4196.  
  4197.  
  4198.  
  4199.  
  4200.  
  4201.  
  4202.  
  4203.  
  4204.                                                                           34
  4205.  
  4206.  
  4207.                                         Dokumentation FranzBasic
  4208.  
  4209.                                                           GOSUB
  4210.  
  4211.                     Art:   Statement
  4212.  
  4213.                     Form:
  4214.  
  4215.                         Gosub Name[([Par][,...])]
  4216.  
  4217.                     Beschreibung:
  4218.  
  4219.                     'GOSUB' ruft das Unterprogramm <Name> auf.
  4220.                     Die Programmabarbeitung verzweigt zum
  4221.                     ersten ausführbaren Befehl des
  4222.                     Unterprogramms. Nach Beenden des
  4223.                     Unterprogramms durch 'ENDSUB' oder 'RETURN'
  4224.                     wird die Programausführung mit der nächsten
  4225.                     auf 'GOSUB' folgenden Programmanweisung
  4226.                     fortgeführt.
  4227.  
  4228.                     Hat das gerufene Unterprogramm <Name> keine
  4229.                     Parameter, so kann an den Namen ein Paar
  4230.                     leerer runder Klammern angehängt werden,
  4231.                     diese können entfallen. Hat das
  4232.                     Unterprogramm Parameter, dann werden die
  4233.                     als Aktualparameter zu übergebenden
  4234.                     Variablen zwischen runden Klammern durch
  4235.                     Komma getrennt aufgezählt. Ihre Anzahl und
  4236.                     die Datentypen müssen mit der Anzahl und
  4237.                     den Datentypen der Formalparameter des
  4238.                     Unterprogramms übereinstimmen.
  4239.  
  4240.  
  4241.  
  4242.  
  4243.  
  4244.  
  4245.  
  4246.  
  4247.  
  4248.  
  4249.                                        4-34
  4250.  
  4251.  
  4252.  
  4253.  
  4254.  
  4255.  
  4256.  
  4257.  
  4258.  
  4259.  
  4260.  
  4261.  
  4262.  
  4263.  
  4264.  
  4265.  
  4266.  
  4267.  
  4268.  
  4269.  
  4270.  
  4271.  
  4272.  
  4273.  
  4274.                                                                           35
  4275.  
  4276.  
  4277.                                         Dokumentation FranzBasic
  4278.  
  4279.                     Beispiel:
  4280.  
  4281.                        siehe 'SUBROUTINE'
  4282.  
  4283.                     Siehe auch:
  4284.  
  4285.                     SUBROUTINE, RETURN
  4286.  
  4287.  
  4288.  
  4289.  
  4290.  
  4291.  
  4292.  
  4293.  
  4294.  
  4295.  
  4296.  
  4297.  
  4298.  
  4299.  
  4300.  
  4301.  
  4302.  
  4303.  
  4304.  
  4305.  
  4306.  
  4307.  
  4308.  
  4309.  
  4310.  
  4311.  
  4312.  
  4313.  
  4314.  
  4315.  
  4316.  
  4317.  
  4318.  
  4319.                                        4-35
  4320.  
  4321.  
  4322.  
  4323.  
  4324.  
  4325.  
  4326.  
  4327.  
  4328.  
  4329.  
  4330.  
  4331.  
  4332.  
  4333.  
  4334.  
  4335.  
  4336.  
  4337.  
  4338.  
  4339.  
  4340.  
  4341.  
  4342.  
  4343.  
  4344.                                                                           36
  4345.  
  4346.  
  4347.                                         Dokumentation FranzBasic
  4348.  
  4349.  
  4350.                     4.3 Befehle zur Dateibearbeitung
  4351.  
  4352.                     inklusive Dateneingabe über Tastatur und
  4353.                     Datenausgabe auf Bildschirm und Drucker.
  4354.  
  4355.                                                            OPEN
  4356.  
  4357.                     Art:   Statement
  4358.  
  4359.                     Form:
  4360.  
  4361.                         Open IO, Kennung, Name[, Rec]
  4362.  
  4363.                        IO:      String
  4364.                        Kennung:      s. u.
  4365.                        Name$:    String
  4366.                        Rec:         Record-Type
  4367.  
  4368.                     Beschreibung:
  4369.  
  4370.                     Die Datei <Name$> wird zur Bearbeitung
  4371.                     geöffnet. <Name$> kann ein
  4372.                     vollqualifizierter Dateiname sein mit
  4373.                     Angabe von Laufwerk und Verzeichnis. <IO>
  4374.                     ist ein String aus einem einzelnen Zeichen,
  4375.                     das die gewünschte Dateibearbeitung
  4376.                     festlegt:
  4377.  
  4378.                     - "I"  INPUT  Datei wird gelesen
  4379.                     - "O"  OUTPUT Datei wird geschrieben
  4380.                     - "U"  UPDATE Datei wird gelesen und
  4381.                                 geschrieben
  4382.                     - "R"  RANDOM Random-Datei
  4383.  
  4384.                     Kennung ist ein '#' gefolgt von einer
  4385.                     Ganzzahl zwischen 1 und 250. Nachfolgende
  4386.  
  4387.  
  4388.  
  4389.                                        4-36
  4390.  
  4391.  
  4392.  
  4393.  
  4394.  
  4395.  
  4396.  
  4397.  
  4398.  
  4399.  
  4400.  
  4401.  
  4402.  
  4403.  
  4404.  
  4405.  
  4406.  
  4407.  
  4408.  
  4409.  
  4410.  
  4411.  
  4412.  
  4413.  
  4414.                                                                           37
  4415.  
  4416.  
  4417.                                         Dokumentation FranzBasic
  4418.  
  4419.                     Lese- oder Schreibzugriffe erfolgen nicht
  4420.                     über den Dateinamen <Name$>, sondern über
  4421.                     diese Kennung. Solange die Datei geöffnet
  4422.                     ist darf mit der gleichen Kennung keine
  4423.                     weitere Datei geöffnet werden.
  4424.  
  4425.                     Für Input geöffnete Dateien werden mit den
  4426.                     Befehlen 'INPUT' und 'LINE INPUT' gelesen,
  4427.                     für Output geöffnete Dateien werden mit
  4428.                     'PRINT' oder 'WRITE' beschrieben. Die
  4429.                     Anzahl der mit einem Zugriff gelesenen bzw.
  4430.                     geschriebenen Zeichen ist beliebig und kann
  4431.                     schwanken. Für Update geöffnete Dateien
  4432.                     können gelesen und geschrieben werden. Die
  4433.                     Lese- und Schreib-Aktionen findet immer an
  4434.                     der Stelle der Datei statt, die bei der
  4435.                     vorhergehenden Aktion erreicht wurde.
  4436.  
  4437.                     Wird das Ende einer für Input oder Update
  4438.                     geöffneten Datei erreicht, werden keine
  4439.                     Zeichen gelesen und ein Runtime-Error
  4440.                     generiert, der mit der Funktion 'ERROR%'
  4441.                     festgestellt werden kann.
  4442.  
  4443.                     Eine für Input oder Update zu öffnende
  4444.                     Datei muß vorhanden sein, ansonsten wird
  4445.                     ein Runtime-Error generiert. Eine für
  4446.                     Output zu öffnende Datei wird neu kreiert,
  4447.                     eine eventuell vorhandene wird dabei
  4448.                     inhaltlich gelöscht.
  4449.  
  4450.                     Die Angabe von <Rec> erfolgt nur für
  4451.                     Random-Dateien. Aus dem Record-Type
  4452.                     übernimmt der Übersetzer die Satzlänge.
  4453.                     Random-Dateien können nach dem Öffnen
  4454.                     sowohl gelesen ('GET') als auch geschrieben
  4455.  
  4456.  
  4457.  
  4458.  
  4459.                                        4-37
  4460.  
  4461.  
  4462.  
  4463.  
  4464.  
  4465.  
  4466.  
  4467.  
  4468.  
  4469.  
  4470.  
  4471.  
  4472.  
  4473.  
  4474.  
  4475.  
  4476.  
  4477.  
  4478.  
  4479.  
  4480.  
  4481.  
  4482.  
  4483.  
  4484.                                                                           38
  4485.  
  4486.  
  4487.                                         Dokumentation FranzBasic
  4488.  
  4489.                     ('PUT') werden, jedoch nur mit Sätzen
  4490.                     fester Länge.
  4491.  
  4492.                     Runtime-Errors: 1, 4
  4493.  
  4494.                     Beispiel:
  4495.  
  4496.                        Open "I", #1, "c:\Mverz\Fakt.txt"
  4497.  
  4498.                        Rectype Arttype
  4499.                           ...
  4500.                        Endrec
  4501.                        Open "R", #9, "artikel.dat", Arttype
  4502.  
  4503.                     Siehe auch:
  4504.  
  4505.                     CLOSE, INPUT, LINE INPUT, PRINT, WRITE,
  4506.                     GET, PUT
  4507.  
  4508.  
  4509.  
  4510.  
  4511.  
  4512.  
  4513.  
  4514.  
  4515.  
  4516.  
  4517.  
  4518.  
  4519.  
  4520.  
  4521.  
  4522.  
  4523.  
  4524.  
  4525.  
  4526.  
  4527.  
  4528.  
  4529.                                        4-38
  4530.  
  4531.  
  4532.  
  4533.  
  4534.  
  4535.  
  4536.  
  4537.  
  4538.  
  4539.  
  4540.  
  4541.  
  4542.  
  4543.  
  4544.  
  4545.  
  4546.  
  4547.  
  4548.  
  4549.  
  4550.  
  4551.  
  4552.  
  4553.  
  4554.                                                                           39
  4555.  
  4556.  
  4557.                                         Dokumentation FranzBasic
  4558.  
  4559.                                                           CLOSE
  4560.  
  4561.                     Art:   Statement
  4562.  
  4563.                     Form:
  4564.  
  4565.                         Close Kennung
  4566.  
  4567.                        Kennung:      siehe 'OPEN'
  4568.  
  4569.                     Beschreibung:
  4570.  
  4571.                     Die mit 'OPEN' unter <Kennung> geöffnete
  4572.                     Datei wird geschlossen. Es können keine
  4573.                     weiteren Lese- oder Schreib-Operationen
  4574.                     stattfinden. <Kennung> darf wieder zur
  4575.                     Öffnung anderer Dateien verwendet werden.
  4576.  
  4577.                     Beispiel:
  4578.  
  4579.                        Close #3
  4580.  
  4581.                     Siehe auch:
  4582.  
  4583.                     OPEN
  4584.  
  4585.  
  4586.  
  4587.  
  4588.  
  4589.  
  4590.  
  4591.  
  4592.  
  4593.  
  4594.  
  4595.  
  4596.  
  4597.  
  4598.  
  4599.                                        4-39
  4600.  
  4601.  
  4602.  
  4603.  
  4604.  
  4605.  
  4606.  
  4607.  
  4608.  
  4609.  
  4610.  
  4611.  
  4612.  
  4613.  
  4614.  
  4615.  
  4616.  
  4617.  
  4618.  
  4619.  
  4620.  
  4621.  
  4622.  
  4623.  
  4624.                                                                           40
  4625.  
  4626.  
  4627.                                         Dokumentation FranzBasic
  4628.  
  4629.                                                           INPUT
  4630.  
  4631.                     Art:   Statement
  4632.  
  4633.                     Form:
  4634.  
  4635.                     1.  Input [Prompt$;]Var [,Var...]
  4636.  
  4637.                     2.  Input Kennung, Var [,Var...]
  4638.  
  4639.                        Prompt$:      String
  4640.                        Var:         Variable
  4641.                        Kennung:      siehe 'OPEN'
  4642.  
  4643.                     Beschreibung:
  4644.  
  4645.                     'INPUT' liest Daten über Tastatur (1. Form)
  4646.                     oder aus Dateien ein (2. Form). Zum
  4647.                     Einlesen aus einer Datei wird die Kennung
  4648.                     einer zuvor geöffneten Datei angegeben,
  4649.                     ansonsten wird die Eingabe über Tastatur
  4650.                     erwartet.
  4651.  
  4652.                     Bei Tastatureingabe kann der String
  4653.                     <Prompt$> als Aufforderung zur Eingabe
  4654.                     eingesetzt werden, fehlt er so wird mit
  4655.                     einem ':' zur Eingabe aufgefordert.
  4656.  
  4657.                     Es werden Daten im ASCII-Format erwartet.
  4658.                     Als Trennzeichen zwischen den Variablen
  4659.                     werden ',' und 'CR' (Zeilenende) erkannt.
  4660.  
  4661.                     Man kann die Variablen auch durch ein Paar
  4662.                     Anführungszeichen "..." einrahmen. Bei
  4663.                     String-Daten können die Strings dann auch
  4664.                     Kommas enthalten, die ansonsten als
  4665.                     Trennzeichen behandelt würden.
  4666.  
  4667.  
  4668.  
  4669.                                        4-40
  4670.  
  4671.  
  4672.  
  4673.  
  4674.  
  4675.  
  4676.  
  4677.  
  4678.  
  4679.  
  4680.  
  4681.  
  4682.  
  4683.  
  4684.  
  4685.  
  4686.  
  4687.  
  4688.  
  4689.  
  4690.  
  4691.  
  4692.  
  4693.  
  4694.                                                                           41
  4695.  
  4696.  
  4697.                                         Dokumentation FranzBasic
  4698.  
  4699.                     Runtime-Errors: 2
  4700.  
  4701.                     Beispiel:
  4702.  
  4703.                        Input "Bitte drei Zahlen";a%,b%,c%
  4704.                        -->Bitte drei Zahlen:
  4705.                        <--1,2,3
  4706.                        Print a%,b%,c%
  4707.                        1    2    3
  4708.  
  4709.                        Input #1, a%, b%, c%
  4710.  
  4711.                     Siehe auch:
  4712.  
  4713.                     OPEN, LINE INPUT
  4714.  
  4715.  
  4716.  
  4717.  
  4718.  
  4719.  
  4720.  
  4721.  
  4722.  
  4723.  
  4724.  
  4725.  
  4726.  
  4727.  
  4728.  
  4729.  
  4730.  
  4731.  
  4732.  
  4733.  
  4734.  
  4735.  
  4736.  
  4737.  
  4738.  
  4739.                                        4-41
  4740.  
  4741.  
  4742.  
  4743.  
  4744.  
  4745.  
  4746.  
  4747.  
  4748.  
  4749.  
  4750.  
  4751.  
  4752.  
  4753.  
  4754.  
  4755.  
  4756.  
  4757.  
  4758.  
  4759.  
  4760.  
  4761.  
  4762.  
  4763.  
  4764.                                                                           42
  4765.  
  4766.  
  4767.                                         Dokumentation FranzBasic
  4768.  
  4769.                                                      LINE INPUT
  4770.  
  4771.                     Art:   Statement
  4772.  
  4773.                     Form:
  4774.  
  4775.                     1.  Line Input [Prompt$;]Var [,Var...]
  4776.  
  4777.                     2.  Line Input Kennung, Var [,Var...]
  4778.  
  4779.                        Prompt$:      String-Konstante
  4780.                        Var:         Variable
  4781.                        Kennung:      siehe 'OPEN'
  4782.  
  4783.                     Beschreibung:
  4784.  
  4785.                     'LINE INPUT' arbeitet wie 'INPUT', mit dem
  4786.                     Unterschied, das als Trennzeichen nur 'CR'
  4787.                     (Zeilenende) gewertet wird.
  4788.  
  4789.                     Runtime-Errors: 2
  4790.  
  4791.  
  4792.  
  4793.  
  4794.  
  4795.  
  4796.  
  4797.  
  4798.  
  4799.  
  4800.  
  4801.  
  4802.  
  4803.  
  4804.  
  4805.  
  4806.  
  4807.  
  4808.  
  4809.                                        4-42
  4810.  
  4811.  
  4812.  
  4813.  
  4814.  
  4815.  
  4816.  
  4817.  
  4818.  
  4819.  
  4820.  
  4821.  
  4822.  
  4823.  
  4824.  
  4825.  
  4826.  
  4827.  
  4828.  
  4829.  
  4830.  
  4831.  
  4832.  
  4833.  
  4834.                                                                           43
  4835.  
  4836.  
  4837.                                         Dokumentation FranzBasic
  4838.  
  4839.                     Beispiel:
  4840.  
  4841.                        Line Input "Bitte 3 Wörter";a$,b$,c$
  4842.                        -->Bitte 3 Wörter:
  4843.                        <--abc
  4844.                        -->:
  4845.                        <--2,2
  4846.                        -->:
  4847.                        <--123
  4848.                        Print a$,b$,c$
  4849.                        abc    2,2  123
  4850.  
  4851.                        Input #1, a%, b%, c%
  4852.  
  4853.                     Siehe auch:
  4854.  
  4855.                     OPEN, INPUT
  4856.  
  4857.  
  4858.  
  4859.  
  4860.  
  4861.  
  4862.  
  4863.  
  4864.  
  4865.  
  4866.  
  4867.  
  4868.  
  4869.  
  4870.  
  4871.  
  4872.  
  4873.  
  4874.  
  4875.  
  4876.  
  4877.  
  4878.  
  4879.                                        4-43
  4880.  
  4881.  
  4882.  
  4883.  
  4884.  
  4885.  
  4886.  
  4887.  
  4888.  
  4889.  
  4890.  
  4891.  
  4892.  
  4893.  
  4894.  
  4895.  
  4896.  
  4897.  
  4898.  
  4899.  
  4900.  
  4901.  
  4902.  
  4903.  
  4904.                                                                           44
  4905.  
  4906.  
  4907.                                         Dokumentation FranzBasic
  4908.  
  4909.                                                           PRINT
  4910.  
  4911.                     Art:   Statement
  4912.  
  4913.                     Form:
  4914.  
  4915.                     1.  Print Data [,Data...]
  4916.  
  4917.                     2.  Print Kennung, Data [,Data...]
  4918.  
  4919.                        Data:     Variable, Konstante
  4920.                        Kennung:      siehe OPEN.
  4921.  
  4922.                     Beschreibung:
  4923.  
  4924.                     'PRINT' gibt Daten auf den Bildschirm (1.
  4925.                     Form) oder in eine Datei aus (2. Form). Die
  4926.                     Daten werden in ASCII-Form ausgegeben.
  4927.                     Werden die einzelnen Ausgabedaten <Data>
  4928.                     durch Kommas getrennt, werden die Daten auf
  4929.                     Spalten positioniert mit einer
  4930.                     Spaltenbreite von 12 Zeichen. Werden statt
  4931.                     Kommas Semikolons gesetzt, werden die Daten
  4932.                     ohne Zwischenraum hintereinandergesetzt.
  4933.  
  4934.                     Folgt hinter dem letzten <Data> ein Komma
  4935.                     oder Semikolon, wird beim nächsten 'PRINT'
  4936.                     an der aktuellen Stelle weiter ausgegeben,
  4937.                     ansonsten wird ein 'CR' (Zeilenende)
  4938.                     erzeugt. Der nächste 'PRINT' beginnt dann
  4939.                     auf einer neuen Zeile.
  4940.  
  4941.                     Die Ausgabedaten <Data> können durch die
  4942.                     Klausel 'USING' gefolgt von einer
  4943.                     Ausgabemaske vor der Ausgabe aufbereitet
  4944.                     werden. Die Ausgabemaske kann die Zeichen
  4945.                     '#',',' und '.' enthalten. '.' markiert den
  4946.  
  4947.  
  4948.  
  4949.                                        4-44
  4950.  
  4951.  
  4952.  
  4953.  
  4954.  
  4955.  
  4956.  
  4957.  
  4958.  
  4959.  
  4960.  
  4961.  
  4962.  
  4963.  
  4964.  
  4965.  
  4966.  
  4967.  
  4968.  
  4969.  
  4970.  
  4971.  
  4972.  
  4973.  
  4974.                                                                           45
  4975.  
  4976.  
  4977.                                         Dokumentation FranzBasic
  4978.  
  4979.                     Dezimalpunkt, '#' ist ein Platzhalter für
  4980.                     ein beliebiges Zeichen aus dem
  4981.                     auszugebenden <Data>, ',' sind Tausender-
  4982.                     Trennzeichen, welche gegebenenfalls in die
  4983.                     Zeichenfolge für <Data> eingefügt werden.
  4984.                     Die Ausgabemaske gilt solange für jedes
  4985.                     <Data> bis eine neue definiert wird oder
  4986.                     mit 'USING ""' die Ausgabemaske intern
  4987.                     gelöscht wird.
  4988.  
  4989.                     Runtime-Errors: 2
  4990.  
  4991.                     Beispiel:
  4992.  
  4993.                        Print "123";"456","789"
  4994.                        -->123456      789
  4995.  
  4996.                        A = 1000.0
  4997.                        Print A,Using"##,###.##";A
  4998.                        -->1000.000000 1,000.00
  4999.  
  5000.  
  5001.                     Siehe auch:
  5002.  
  5003.                     OPEN, WRITE, LPRINT
  5004.  
  5005.  
  5006.  
  5007.  
  5008.  
  5009.  
  5010.  
  5011.  
  5012.  
  5013.  
  5014.  
  5015.  
  5016.  
  5017.  
  5018.  
  5019.                                        4-45
  5020.  
  5021.  
  5022.  
  5023.  
  5024.  
  5025.  
  5026.  
  5027.  
  5028.  
  5029.  
  5030.  
  5031.  
  5032.  
  5033.  
  5034.  
  5035.  
  5036.  
  5037.  
  5038.  
  5039.  
  5040.  
  5041.  
  5042.  
  5043.  
  5044.                                                                           46
  5045.  
  5046.  
  5047.                                         Dokumentation FranzBasic
  5048.  
  5049.                                                          LPRINT
  5050.  
  5051.                     Art:   Statement
  5052.  
  5053.                     Form:
  5054.  
  5055.                         Lprint Data [,Data...]
  5056.  
  5057.                        Data:     Variable, Konstante
  5058.  
  5059.                     Beschreibung:
  5060.  
  5061.                     'LPRINT' arbeitet wie 'PRINT' in der 1.
  5062.                     Form, gibt jedoch die Daten nicht auf dem
  5063.                     Bildschirm sondern auf dem Drucker aus.
  5064.  
  5065.  
  5066.  
  5067.  
  5068.  
  5069.  
  5070.  
  5071.  
  5072.  
  5073.  
  5074.  
  5075.  
  5076.  
  5077.  
  5078.  
  5079.  
  5080.  
  5081.  
  5082.  
  5083.  
  5084.  
  5085.  
  5086.  
  5087.  
  5088.  
  5089.                                        4-46
  5090.  
  5091.  
  5092.  
  5093.  
  5094.  
  5095.  
  5096.  
  5097.  
  5098.  
  5099.  
  5100.  
  5101.  
  5102.  
  5103.  
  5104.  
  5105.  
  5106.  
  5107.  
  5108.  
  5109.  
  5110.  
  5111.  
  5112.  
  5113.  
  5114.                                                                           47
  5115.  
  5116.  
  5117.                                         Dokumentation FranzBasic
  5118.  
  5119.                                                           WRITE
  5120.  
  5121.                     Art:   Statement
  5122.  
  5123.                     Form:
  5124.  
  5125.                         Write Kennung, Data [,Data...]
  5126.  
  5127.                     Beschreibung:
  5128.  
  5129.                     Wie 'PRINT' in der zweiten Form gibt
  5130.                     'WRITE' Daten in Dateien aus. Kommas
  5131.                     zwischen den einzelnen <Data> bewirken
  5132.                     jedoch keine Spalteneinteilung, sondern
  5133.                     eine Ausgabe von Kommas in die Datei. Beim
  5134.                     Wiedereinlesen der Datei mit Input können
  5135.                     diese dann als Trennzeichen interpretiert
  5136.                     werden.
  5137.  
  5138.                     Semikolons werden wie Kommas behandelt.
  5139.                     Steht am Zeilenende kein Komma (Semikolon),
  5140.                     wird eine neue Ausgabezeile erzeugt (CR),
  5141.                     sonst ein Komma ausgegeben und bei der
  5142.                     nächsten Ausgabe-Anweisung an dieser Stelle
  5143.                     fortgesetzt.
  5144.  
  5145.                     Strings werden mit einem Paar
  5146.                     Anführungszeichen "..." ausgegeben, um
  5147.                     eventuell im String enthaltene Kommas beim
  5148.                     Wiedereinlesen nicht als Trennzeichen
  5149.                     wirken zu lassen (siehe 'INPUT').
  5150.  
  5151.                     Runtime-Errors: 2
  5152.  
  5153.  
  5154.  
  5155.  
  5156.  
  5157.  
  5158.  
  5159.                                        4-47
  5160.  
  5161.  
  5162.  
  5163.  
  5164.  
  5165.  
  5166.  
  5167.  
  5168.  
  5169.  
  5170.  
  5171.  
  5172.  
  5173.  
  5174.  
  5175.  
  5176.  
  5177.  
  5178.  
  5179.  
  5180.  
  5181.  
  5182.  
  5183.  
  5184.                                                                           48
  5185.  
  5186.  
  5187.                                         Dokumentation FranzBasic
  5188.  
  5189.                     Beispiel:
  5190.  
  5191.                        A = 100.0 : A$ = "ABC,DEF"
  5192.                        Write #2,A,A$,12
  5193.                        -->100.0,"ABC,DEF",12  (in Datei)
  5194.  
  5195.                     siehe auch:
  5196.  
  5197.                     INPUT, PRINT
  5198.  
  5199.  
  5200.  
  5201.  
  5202.  
  5203.  
  5204.  
  5205.  
  5206.  
  5207.  
  5208.  
  5209.  
  5210.  
  5211.  
  5212.  
  5213.  
  5214.  
  5215.  
  5216.  
  5217.  
  5218.  
  5219.  
  5220.  
  5221.  
  5222.  
  5223.  
  5224.  
  5225.  
  5226.  
  5227.  
  5228.  
  5229.                                        4-48
  5230.  
  5231.  
  5232.  
  5233.  
  5234.  
  5235.  
  5236.  
  5237.  
  5238.  
  5239.  
  5240.  
  5241.  
  5242.  
  5243.  
  5244.  
  5245.  
  5246.  
  5247.  
  5248.  
  5249.  
  5250.  
  5251.  
  5252.  
  5253.  
  5254.                                                                           49
  5255.  
  5256.  
  5257.                                         Dokumentation FranzBasic
  5258.  
  5259.                                                             GET
  5260.  
  5261.                     Art:   Statement
  5262.  
  5263.                     Form:
  5264.  
  5265.                         Get Kennung, Satznr%, Satz
  5266.  
  5267.                        Kennung:      siehe 'INPUT'
  5268.                        Satznr%:      Integer
  5269.                        Satz:     Record
  5270.  
  5271.                     Beschreibung:
  5272.  
  5273.                     'GET' liest Daten aus einer Random-Datei.
  5274.                     Die Datei muß mit 'OPEN' als Random-Datei
  5275.                     geöffnet werden. Random-Dateien bestehen
  5276.                     aus Sätzen fester Länge. Die Sätze werden
  5277.                     als Ganzes gelesen und geschrieben. Sätze
  5278.                     werden durch eine Satznummer identifiziert.
  5279.                     Der mit 'GET' aus der Datei gelesene Satz
  5280.                     mit Satznummer <Satznr%> wird im Record
  5281.                     <Satz> abgelegt.
  5282.  
  5283.                     Runtime-Errors: 2, 3
  5284.  
  5285.                     Beispiel:
  5286.  
  5287.                        Get #3,101,Asatz
  5288.  
  5289.                     Siehe auch:
  5290.  
  5291.                     PUT, OPEN
  5292.  
  5293.  
  5294.  
  5295.  
  5296.  
  5297.  
  5298.  
  5299.                                        4-49
  5300.  
  5301.  
  5302.  
  5303.  
  5304.  
  5305.  
  5306.  
  5307.  
  5308.  
  5309.  
  5310.  
  5311.  
  5312.  
  5313.  
  5314.  
  5315.  
  5316.  
  5317.  
  5318.  
  5319.  
  5320.  
  5321.  
  5322.  
  5323.  
  5324.                                                                           50
  5325.  
  5326.  
  5327.                                         Dokumentation FranzBasic
  5328.  
  5329.                                                             PUT
  5330.  
  5331.                     Art:   Statement
  5332.  
  5333.                     Form:
  5334.  
  5335.                         Put Kennung, Satznr%, Satz
  5336.  
  5337.                        Kennung:      siehe 'INPUT'
  5338.                        Satznr%:      Integer
  5339.                        Satz:     Record
  5340.  
  5341.                     Beschreibung:
  5342.  
  5343.                     'PUT' schreibt Sätze fester Länge in eine
  5344.                     Random-Datei. Die Datei muß als Random-
  5345.                     Datei geöffnet werden (siehe OPEN). Die
  5346.                     Daten aus dem Record <Satz> werden unter
  5347.                     der Satznummer <Satznr%> gespeichert.
  5348.  
  5349.                     Runtime-Errors: 2, 3
  5350.  
  5351.                     Beispiel:
  5352.  
  5353.                        Put #2,999,Asatz
  5354.  
  5355.                     Siehe auch:
  5356.  
  5357.                     INPUT, GET
  5358.  
  5359.  
  5360.  
  5361.  
  5362.  
  5363.  
  5364.  
  5365.  
  5366.  
  5367.  
  5368.  
  5369.                                        4-50
  5370.  
  5371.  
  5372.  
  5373.  
  5374.  
  5375.  
  5376.  
  5377.  
  5378.  
  5379.  
  5380.  
  5381.  
  5382.  
  5383.  
  5384.  
  5385.  
  5386.  
  5387.  
  5388.  
  5389.  
  5390.  
  5391.  
  5392.  
  5393.  
  5394.                                                                           51
  5395.  
  5396.  
  5397.                                         Dokumentation FranzBasic
  5398.  
  5399.                                                           ERASE
  5400.  
  5401.                     Art:   Statement
  5402.  
  5403.                     Form:
  5404.  
  5405.                         Erase Name$
  5406.  
  5407.                        Name$:    String
  5408.  
  5409.                     Beschreibung:
  5410.  
  5411.                     'ERASE' löscht von der Platte die Datei
  5412.                     <Name$>. <Name$> kann ein
  5413.                     vollqualifizierter Pfadname mit Angabe von
  5414.                     Laufwerk und Verzeichnis sein.
  5415.  
  5416.                     Beispiel:
  5417.  
  5418.                        Erase "c:\mverz\abc.txt"
  5419.  
  5420.  
  5421.  
  5422.  
  5423.  
  5424.  
  5425.  
  5426.  
  5427.  
  5428.  
  5429.  
  5430.  
  5431.  
  5432.  
  5433.  
  5434.  
  5435.  
  5436.  
  5437.  
  5438.  
  5439.                                        4-51
  5440.  
  5441.  
  5442.  
  5443.  
  5444.  
  5445.  
  5446.  
  5447.  
  5448.  
  5449.  
  5450.  
  5451.  
  5452.  
  5453.  
  5454.  
  5455.  
  5456.  
  5457.  
  5458.  
  5459.  
  5460.  
  5461.  
  5462.  
  5463.  
  5464.                                                                           52
  5465.  
  5466.  
  5467.                                         Dokumentation FranzBasic
  5468.  
  5469.                                                          RENAME
  5470.  
  5471.                     Art:   Statement
  5472.  
  5473.                     Form:
  5474.  
  5475.                         Rename Alt$, Neu$
  5476.  
  5477.                        Alt$:     String
  5478.                        Neu$:     String
  5479.  
  5480.                     'RENAME' benennt eine Datei um. <Alt$> ist
  5481.                     der bestehende Name einer Datei. Dieser
  5482.                     Name kann Laufwerk und Verzeichnis
  5483.                     enthalten. <Neu$> ist der neue Dateiname,
  5484.                     er darf weder Laufwerk noch Verzeichnis
  5485.                     enthalten, da diese Angaben von <Alt$>
  5486.                     übernommen werden.
  5487.  
  5488.                     Beispiel:
  5489.  
  5490.                        Rename "c:\mverz\abc", "123"
  5491.  
  5492.  
  5493.  
  5494.  
  5495.  
  5496.  
  5497.  
  5498.  
  5499.  
  5500.  
  5501.  
  5502.  
  5503.  
  5504.  
  5505.  
  5506.  
  5507.  
  5508.  
  5509.                                        4-52
  5510.  
  5511.  
  5512.  
  5513.  
  5514.  
  5515.  
  5516.  
  5517.  
  5518.  
  5519.  
  5520.  
  5521.  
  5522.  
  5523.  
  5524.  
  5525.  
  5526.  
  5527.  
  5528.  
  5529.  
  5530.  
  5531.  
  5532.  
  5533.  
  5534.                                                                           53
  5535.  
  5536.  
  5537.                                         Dokumentation FranzBasic
  5538.  
  5539.                                                          INKEY$
  5540.  
  5541.                     Art:   Statement
  5542.  
  5543.                     Form:
  5544.  
  5545.                         Inkey$ Str$
  5546.  
  5547.                        Str$:     Stringvariable
  5548.  
  5549.                     Beschreibung:
  5550.  
  5551.                     'INKEY$' stellt fest, ob seit der letzen
  5552.                     'INPUT'- oder 'INKEY$'-Anweisung ein
  5553.                     Zeichen über Tastatur eingeben wurde. Wenn
  5554.                     ja, wird dieses Zeichen in <Str$>
  5555.                     zurückgegeben, wenn nein wird eine leere
  5556.                     Zeichenkette "" zurückgegeben. 'INKEY$'
  5557.                     wartet also nicht auf eine Eingabe wie
  5558.                     'INPUT', sondern kehrt sofort zurück.
  5559.  
  5560.                     Beispiel:
  5561.  
  5562.                        Inkey$ a$
  5563.                        If a$ <> "" Then Break
  5564.  
  5565.  
  5566.  
  5567.  
  5568.  
  5569.  
  5570.  
  5571.  
  5572.  
  5573.  
  5574.  
  5575.  
  5576.  
  5577.  
  5578.  
  5579.                                        4-53
  5580.  
  5581.  
  5582.  
  5583.  
  5584.  
  5585.  
  5586.  
  5587.  
  5588.  
  5589.  
  5590.  
  5591.  
  5592.  
  5593.  
  5594.  
  5595.  
  5596.  
  5597.  
  5598.  
  5599.  
  5600.  
  5601.  
  5602.  
  5603.  
  5604.                                                                           54
  5605.  
  5606.  
  5607.                                         Dokumentation FranzBasic
  5608.  
  5609.                                                        LASTKEY%
  5610.  
  5611.                     Art:   Funktion
  5612.  
  5613.                     Form:
  5614.  
  5615.                         Lastkey%()
  5616.  
  5617.                     Beschreibung:
  5618.  
  5619.                     'LASTKEY%' stellt fest, welches Zeichen
  5620.                     zuletzt von einer Programmanweisung über
  5621.                     Tastatur eingelesen wurde. 'LASTKEY%'
  5622.                     stellt also ein Zeichen zur Verfügung, das
  5623.                     bereits von einer anderen Anweisung
  5624.                     bearbeitet wurde. Dies ist nützlich in
  5625.                     Zusammenarbeit mit Befehlen wie 'MENU' oder
  5626.                     'MESSAGE', die auf bestimmte
  5627.                     Benutzereingaben hin beendet werden. Mit
  5628.                     'LASTKEY%' lässt sich die letzte Eingabe
  5629.                     zur Bearbeitung holen.
  5630.  
  5631.                     Beispiel:
  5632.  
  5633.                        Menu MString$
  5634.                        If lastkey%() = 27 Then Return
  5635.                                 ' 27 = ESC
  5636.  
  5637.                     siehe auch:
  5638.  
  5639.                     MENU, MESSAGE
  5640.  
  5641.  
  5642.  
  5643.  
  5644.  
  5645.  
  5646.  
  5647.  
  5648.  
  5649.                                        4-54
  5650.  
  5651.  
  5652.  
  5653.  
  5654.  
  5655.  
  5656.  
  5657.  
  5658.  
  5659.  
  5660.  
  5661.  
  5662.  
  5663.  
  5664.  
  5665.  
  5666.  
  5667.  
  5668.  
  5669.  
  5670.  
  5671.  
  5672.  
  5673.  
  5674.                                                                           55
  5675.  
  5676.  
  5677.                                         Dokumentation FranzBasic
  5678.  
  5679.  
  5680.                     4.4 Anweisungen zur Datenbank - Bearbeitung
  5681.  
  5682.                     Runtime-Fehler für Datenbank-Befehle: 20-31
  5683.  
  5684.                                                        DBCREATE
  5685.  
  5686.                     Art:   Statement
  5687.  
  5688.                     Form:
  5689.  
  5690.                         Dbcreate Name$, Rec
  5691.  
  5692.                        Name$:    String
  5693.                        Rec:         Record-Type
  5694.  
  5695.                     Beschreibung:
  5696.  
  5697.                     'DBCREATE' erzeugt eine dBase-III-
  5698.                     kompatible Datenbank. <Name> ist der Name
  5699.                     der Datenbank. Sie besteht aus den Dateien
  5700.                     <Name>.dbf und <Name>.ndx. Die Struktur der
  5701.                     Datenbank hat die Struktur des Record-
  5702.                     Type's <Rec>.
  5703.  
  5704.                     Mit 'DBCREATE' wird die Datenbank nicht
  5705.                     gleichzeitig geöffnet.
  5706.  
  5707.                     Mit 'ERASE' kann die Datenbank durch
  5708.                     Löschen Ihrer beiden Dateien wieder
  5709.                     gelöscht werden.
  5710.  
  5711.  
  5712.  
  5713.  
  5714.  
  5715.  
  5716.  
  5717.  
  5718.  
  5719.                                        4-55
  5720.  
  5721.  
  5722.  
  5723.  
  5724.  
  5725.  
  5726.  
  5727.  
  5728.  
  5729.  
  5730.  
  5731.  
  5732.  
  5733.  
  5734.  
  5735.  
  5736.  
  5737.  
  5738.  
  5739.  
  5740.  
  5741.  
  5742.  
  5743.  
  5744.                                                                           56
  5745.  
  5746.  
  5747.                                         Dokumentation FranzBasic
  5748.  
  5749.                     Beispiel:
  5750.  
  5751.                        Rectype Arttype
  5752.                           ...
  5753.                        Endrec
  5754.                        Dbcreate "Artikel",Arttype
  5755.  
  5756.  
  5757.  
  5758.  
  5759.  
  5760.  
  5761.  
  5762.  
  5763.  
  5764.  
  5765.  
  5766.  
  5767.  
  5768.  
  5769.  
  5770.  
  5771.  
  5772.  
  5773.  
  5774.  
  5775.  
  5776.  
  5777.  
  5778.  
  5779.  
  5780.  
  5781.  
  5782.  
  5783.  
  5784.  
  5785.  
  5786.  
  5787.  
  5788.  
  5789.                                        4-56
  5790.  
  5791.  
  5792.  
  5793.  
  5794.  
  5795.  
  5796.  
  5797.  
  5798.  
  5799.  
  5800.  
  5801.  
  5802.  
  5803.  
  5804.  
  5805.  
  5806.  
  5807.  
  5808.  
  5809.  
  5810.  
  5811.  
  5812.  
  5813.  
  5814.                                                                           57
  5815.  
  5816.  
  5817.                                         Dokumentation FranzBasic
  5818.  
  5819.                                                          DBOPEN
  5820.  
  5821.                     Art:      Statement
  5822.  
  5823.                     Form:
  5824.  
  5825.                         Dbopen Kennung, Name$
  5826.  
  5827.                        Kennung:      s. u.
  5828.                        Name$:    String
  5829.  
  5830.                     Beschreibung:
  5831.  
  5832.                     Die Datenbank <Name$> wird durch 'DBOPEN'
  5833.                     zur Bearbeitung geöffnet.
  5834.  
  5835.                     Kennung ist ein '#' gefolgt von einer
  5836.                     Ganzzahl zwischen 1 und 4. Maximal vier
  5837.                     Datenbanken können gleichzeitig geöffnet
  5838.                     werden. Nachfolgende Lese- oder
  5839.                     Schreibzugriffe erfolgen nicht über den
  5840.                     Datenbanknamen <Name$>, sondern über diese
  5841.                     Kennung. Solange die Datenbank geöffnet ist
  5842.                     darf mit der gleichen Kennung keine weitere
  5843.                     Datenbank geöffnet werden. Es dürfen jedoch
  5844.                     einfache Dateien mit einer gleichlautenden
  5845.                     Kennung geöffnet werden, da zwischen
  5846.                     Dateien-Kennung und Datenbank-Kennung
  5847.                     unterschieden wird.
  5848.  
  5849.                     Beispiel:
  5850.  
  5851.                        Dbopen #2,"Artikel"
  5852.  
  5853.                     Siehe auch:
  5854.  
  5855.                     DBCREATE, DBCLOSE
  5856.  
  5857.  
  5858.  
  5859.                                        4-57
  5860.  
  5861.  
  5862.  
  5863.  
  5864.  
  5865.  
  5866.  
  5867.  
  5868.  
  5869.  
  5870.  
  5871.  
  5872.  
  5873.  
  5874.  
  5875.  
  5876.  
  5877.  
  5878.  
  5879.  
  5880.  
  5881.  
  5882.  
  5883.  
  5884.                                                                           58
  5885.  
  5886.  
  5887.                                         Dokumentation FranzBasic
  5888.  
  5889.                                                         DBCLOSE
  5890.  
  5891.                     Art:   Statement
  5892.  
  5893.                     Form:
  5894.  
  5895.                         Dbclose Kennung
  5896.  
  5897.                        Kennung:      siehe 'DBOPEN'
  5898.  
  5899.                     Beschreibung
  5900.  
  5901.                     Die Datenbank <Kennung> wird durch
  5902.                     'DBCLOSE' geschlossen. Eine weitere
  5903.                     Bearbeitung innerhalb des Programms ist
  5904.                     nicht möglich. Unter <Kennung> können jetzt
  5905.                     andere Datenbanken geöffnet werden.
  5906.  
  5907.                     Beispiel:
  5908.  
  5909.                        Dbclose #2
  5910.  
  5911.                     Siehe auch:
  5912.  
  5913.                     DBOPEN
  5914.  
  5915.  
  5916.  
  5917.  
  5918.  
  5919.  
  5920.  
  5921.  
  5922.  
  5923.  
  5924.  
  5925.  
  5926.  
  5927.  
  5928.  
  5929.                                        4-58
  5930.  
  5931.  
  5932.  
  5933.  
  5934.  
  5935.  
  5936.  
  5937.  
  5938.  
  5939.  
  5940.  
  5941.  
  5942.  
  5943.  
  5944.  
  5945.  
  5946.  
  5947.  
  5948.  
  5949.  
  5950.  
  5951.  
  5952.  
  5953.  
  5954.                                                                           59
  5955.  
  5956.  
  5957.                                         Dokumentation FranzBasic
  5958.  
  5959.                                                           DBGET
  5960.  
  5961.                     Art:   Statement
  5962.  
  5963.                     Form:
  5964.  
  5965.                         Dbget Kennung, Schlüssel$, Satz
  5966.  
  5967.                        Kennung:      s. 'DBOPEN'
  5968.                        Schlüssel$:String
  5969.                        Satz:     Record
  5970.  
  5971.                     Beschreibung:
  5972.  
  5973.                     Mit 'DBGET' wird ein Datensatz aus der
  5974.                     Datenbank gelesen, die unter <Kennung>
  5975.                     geöffnet wurde. Es wird derjenige Satz in
  5976.                     den Record <Satz> gelesen, dessen
  5977.                     Schlüsselfeld mit dem Inhalt des Strings
  5978.                     <Schlüssel$> übereinstimmt. In FranzBasic
  5979.                     ist das Schlüsselfeld immer das erste
  5980.                     Element des Record-Types, mit dem bei
  5981.                     'DBCREATE' die Datenbank kreiert wurde. Der
  5982.                     Record <Satz> sollte sinnvollerweise von
  5983.                     diesem Record-Type sein, ansonsten ist das
  5984.                     Verhalten von 'DBGET' unbestimmt.
  5985.  
  5986.                     Ist in der Datenbank kein Satz mit dem
  5987.                     Schlüssel <Schlüssel$> vorhanden, so wird
  5988.                     der Satz mit dem nächst größeren Schlüssel
  5989.                     (im lexikalischen Sinn) nach <Satz> geladen
  5990.                     und ein Runtime-Error gesetzt.
  5991.  
  5992.                     Sonderfälle:
  5993.  
  5994.                     Einige Werte von <Schlüssel$> werden nicht
  5995.                     als Satzschlüssel interpretiert, sondern
  5996.  
  5997.  
  5998.  
  5999.                                        4-59
  6000.  
  6001.  
  6002.  
  6003.  
  6004.  
  6005.  
  6006.  
  6007.  
  6008.  
  6009.  
  6010.  
  6011.  
  6012.  
  6013.  
  6014.  
  6015.  
  6016.  
  6017.  
  6018.  
  6019.  
  6020.  
  6021.  
  6022.  
  6023.  
  6024.                                                                           60
  6025.  
  6026.  
  6027.                                         Dokumentation FranzBasic
  6028.  
  6029.                     als Steuerungsinformation. Sie dienen der
  6030.                     absoluten und relativen Positionierung in
  6031.                     der Datenbank.
  6032.  
  6033.                     "^"   Lesen ersten Satz
  6034.                     "*"   Lesen letzten Satz
  6035.                     "+"   Lesen nächsten Satz
  6036.                     "-"   Lesen voherigen Satz
  6037.  
  6038.                     "+" und "-" lesen Datensätze, die in
  6039.                     lexikalischer Reihenfolge Nachfolger bzw.
  6040.                     Vorgänger des zuletzt gelesenen Satzes sind
  6041.                     und erlauben somit ein sequentielles
  6042.                     Bearbeiten der Datenbank. "^" und "*"
  6043.                     erlauben die Positionierung auf Anfang und
  6044.                     Ende der Datenbank. Beim Öffnen einer
  6045.                     Datenbank ist diese automatisch auf den
  6046.                     Anfang positioniert.
  6047.  
  6048.                     Beispiel:
  6049.  
  6050.                        Dbget #2,"4711", Artikelsatz
  6051.  
  6052.                     Siehe auch:
  6053.  
  6054.                     DBOPEN, DBPUT
  6055.  
  6056.  
  6057.  
  6058.  
  6059.  
  6060.  
  6061.  
  6062.  
  6063.  
  6064.  
  6065.  
  6066.  
  6067.  
  6068.  
  6069.                                        4-60
  6070.  
  6071.  
  6072.  
  6073.  
  6074.  
  6075.  
  6076.  
  6077.  
  6078.  
  6079.  
  6080.  
  6081.  
  6082.  
  6083.  
  6084.  
  6085.  
  6086.  
  6087.  
  6088.  
  6089.  
  6090.  
  6091.  
  6092.  
  6093.  
  6094.                                                                           61
  6095.  
  6096.  
  6097.                                         Dokumentation FranzBasic
  6098.  
  6099.                                                           DBPUT
  6100.  
  6101.                     Art:   Statement
  6102.  
  6103.                     Form:
  6104.  
  6105.                         Dbput Kennung, Satz
  6106.  
  6107.                        Kennung:      s. 'DBOPEN'
  6108.                        Satz:     Record
  6109.  
  6110.                     Beschreibung:
  6111.  
  6112.                     'DBPUT' schreibt den Inhalt des Records
  6113.                     <Satz> in die Datenbank <Kennung>. Als
  6114.                     Schlüssel dient das erste Element des
  6115.                     Records <Satz>. Der Schlüssel kann beliebig
  6116.                     sein, beim Schreiben braucht keine
  6117.                     Reihenfolge eingehalten werden.
  6118.  
  6119.                     Beispiel:
  6120.  
  6121.                        Dbput #2, Artikelsatz
  6122.  
  6123.                     Siehe auch:
  6124.  
  6125.                     DBOPEN, DBPGET
  6126.  
  6127.  
  6128.  
  6129.  
  6130.  
  6131.  
  6132.  
  6133.  
  6134.  
  6135.  
  6136.  
  6137.  
  6138.  
  6139.                                        4-61
  6140.  
  6141.  
  6142.  
  6143.  
  6144.  
  6145.  
  6146.  
  6147.  
  6148.  
  6149.  
  6150.  
  6151.  
  6152.  
  6153.  
  6154.  
  6155.  
  6156.  
  6157.  
  6158.  
  6159.  
  6160.  
  6161.  
  6162.  
  6163.  
  6164.                                                                           62
  6165.  
  6166.  
  6167.                                         Dokumentation FranzBasic
  6168.  
  6169.                                                        DBDELETE
  6170.  
  6171.                     Art:   Statement
  6172.  
  6173.                     Form:
  6174.  
  6175.                         Dbdelete Kennung
  6176.  
  6177.                        Kennung:      s. 'DBOPEN'
  6178.  
  6179.                     Beschreibung:
  6180.  
  6181.                     'DBPUT' löscht den zuletzt mit 'DBGET'
  6182.                     gelesenen Datensatz der Datenbank
  6183.                     <Kennung>. Achtung: ist der Satz, der von
  6184.                     'DBGET' gelesen werden soll nicht
  6185.                     vorhanden, wird der nächste Satz geladen.
  6186.                     Dieser würde dann auch mit 'DBDELETE'
  6187.                     gelöscht! Sicherheitshalber sollte mit
  6188.                     'ERROR%()' die korrekte Ausführung des
  6189.                     Lesebefehls 'DBGET' überprüft werden.
  6190.  
  6191.                     Beispiel:
  6192.  
  6193.                        Dbget #1,"4711", Artikelsatz
  6194.                        If Error%() = 0 Then
  6195.                           Dbdelete #1
  6196.                        Else
  6197.                           Print "Satz 4711 nicht vorhanden"
  6198.                        Endif
  6199.  
  6200.  
  6201.  
  6202.  
  6203.  
  6204.  
  6205.  
  6206.  
  6207.  
  6208.  
  6209.                                        4-62
  6210.  
  6211.  
  6212.  
  6213.  
  6214.  
  6215.  
  6216.  
  6217.  
  6218.  
  6219.  
  6220.  
  6221.  
  6222.  
  6223.  
  6224.  
  6225.  
  6226.  
  6227.  
  6228.  
  6229.  
  6230.  
  6231.  
  6232.  
  6233.  
  6234.                                                                           63
  6235.  
  6236.  
  6237.                                         Dokumentation FranzBasic
  6238.  
  6239.                                                        DBBROWSE
  6240.  
  6241.                     Art:   Statement
  6242.  
  6243.                     Form:
  6244.  
  6245.                         Dbbrowse Ken[, St$, Form$, x%, y%, z%]
  6246.  
  6247.                        Ken:         Dateikennung
  6248.                        St$:         String
  6249.                        Form$:    String
  6250.                        x%:      Integer
  6251.                        y%:      Integer
  6252.                        z%:      Integer
  6253.  
  6254.  
  6255.                     Beschreibung:
  6256.  
  6257.                     'DBBROWSE' ermöglichst das Durchblättern
  6258.                     (Browsing) einer Datenbank in
  6259.                     tabellarischer Darstellung am Bildschirm.
  6260.                     <Ken> ist die Dateikennung der zu
  6261.                     bearbeitenden Datenbank, welche zuvor mit
  6262.                     'DBOPEN' geöffnet werden muß. Die weiteren
  6263.                     Angaben sind optional.
  6264.  
  6265.                     Soll das Durchblättern nicht vom ersten
  6266.                     Satz der Datenbank an erfolgen, kann durch
  6267.                     <St$> der Schlüssel des Startsatzes
  6268.                     angegeben werden. Existiert der Satz nicht
  6269.                     (oder ist <St$> ein Teilschlüssel) beginnt
  6270.                     die Ausgabe beim nächsten Satz.
  6271.  
  6272.                     Standardmäßig wird der komplette Datensatz
  6273.                     angezeigt, begrenzt auf die Breite des
  6274.                     Bildschirms, überzählige Zeichen werden
  6275.                     abgeschnitten. Mit <Form$> können die
  6276.  
  6277.  
  6278.  
  6279.                                        4-63
  6280.  
  6281.  
  6282.  
  6283.  
  6284.  
  6285.  
  6286.  
  6287.  
  6288.  
  6289.  
  6290.  
  6291.  
  6292.  
  6293.  
  6294.  
  6295.  
  6296.  
  6297.  
  6298.  
  6299.  
  6300.  
  6301.  
  6302.  
  6303.  
  6304.                                                                           64
  6305.  
  6306.  
  6307.                                         Dokumentation FranzBasic
  6308.  
  6309.                     einzelnen Elemente des Datensatzes in der
  6310.                     Breite eingestellt oder ganz ausgelassen
  6311.                     werden, um grosse Datensätze in sinnvoller
  6312.                     Darstellung zeigen zu können. Dazu gibt man
  6313.                     die erwünschten Spaltenbreiten für die
  6314.                     Elemente des Datensatzes nacheinander durch
  6315.                     Komma getrennt als String an:
  6316.  
  6317.                     <Form$>:      "n[,n...]"
  6318.                     mit   n: Integer
  6319.  
  6320.                     <x%> und <y%> geben den linken oberen
  6321.                     Eckpunkt des Fensters auf dem Bildschirm
  6322.                     an, in dem die Datenbank gelistet wird.
  6323.                     <z%> gibt die Anzahl der gleichzeitig
  6324.                     dargestellten Datensätze an. Bei Fehlen von
  6325.                     <x%>, <y%>, <z%> werden Standardwerte
  6326.                     verwendet.
  6327.  
  6328.                     Bedienung:
  6329.  
  6330.                     PgUp/BildAuf:     Zurückblättern
  6331.                     ESC:            Beenden
  6332.                     beliebige Taste:   Weiterblättern
  6333.  
  6334.                     Beispiel:
  6335.  
  6336.                        Dbopen #2,"Personal"
  6337.                        Dbbrowse #2,"Müller","12,,8",4,6,10
  6338.                        Dbclose #2
  6339.  
  6340.                     Datenbank #2 wird geblättert ab Satz mit
  6341.                     Schlüssel "Müller". Die Spaltenbreiten
  6342.                     werden zur Darstellung mit 12 Zeichen für
  6343.                     das erste Element (=Satzschlüssel), 0
  6344.                     Zeichen für das zweite Element - d.h.
  6345.                     dieses Element wird nicht dargestellt - und
  6346.                     8 Zeichen für das dritte Element. Alle
  6347.  
  6348.  
  6349.                                        4-64
  6350.  
  6351.  
  6352.  
  6353.  
  6354.  
  6355.  
  6356.  
  6357.  
  6358.  
  6359.  
  6360.  
  6361.  
  6362.  
  6363.  
  6364.  
  6365.  
  6366.  
  6367.  
  6368.  
  6369.  
  6370.  
  6371.  
  6372.  
  6373.  
  6374.                                                                           65
  6375.  
  6376.  
  6377.                                         Dokumentation FranzBasic
  6378.  
  6379.                     weiteren Elemente des Datensatzes werden
  6380.                     mit ihrer Standardbreite angezeigt, sofern
  6381.                     sie innerhalb des Bildschirms bleiben.
  6382.  
  6383.  
  6384.  
  6385.  
  6386.  
  6387.  
  6388.  
  6389.  
  6390.  
  6391.  
  6392.  
  6393.  
  6394.  
  6395.  
  6396.  
  6397.  
  6398.  
  6399.  
  6400.  
  6401.  
  6402.  
  6403.  
  6404.  
  6405.  
  6406.  
  6407.  
  6408.  
  6409.  
  6410.  
  6411.  
  6412.  
  6413.  
  6414.  
  6415.  
  6416.  
  6417.  
  6418.  
  6419.                                        4-65
  6420.  
  6421.  
  6422.  
  6423.  
  6424.  
  6425.  
  6426.  
  6427.  
  6428.  
  6429.  
  6430.  
  6431.  
  6432.  
  6433.  
  6434.  
  6435.  
  6436.  
  6437.  
  6438.  
  6439.  
  6440.  
  6441.  
  6442.  
  6443.  
  6444.                                                                           66
  6445.  
  6446.  
  6447.                                         Dokumentation FranzBasic
  6448.  
  6449.  
  6450.                     4.5 Mathematische Funktionen
  6451.  
  6452.                     Alle mathematische Funktionen nehmen eine
  6453.                     numerische Konstante oder Variable
  6454.                     (vorzugsweise vom Datentyp Real) als
  6455.                     Argument und liefern ein Funktionsergebnis
  6456.                     vom Datentyp Real. Wird ein anderer
  6457.                     Datentyp als Real als Argument gegeben,
  6458.                     wird intern eine Typwandlung durchgeführt
  6459.                     unter Verbrauch von Speicherplatz und
  6460.                     Rechenzeit durchgeführt.
  6461.  
  6462.                     Einige Funktionen verlangen den Wert des
  6463.                     Arguments in Radian. Es gilt:
  6464.  
  6465.                     PI Radian = 360 Grad
  6466.  
  6467.  
  6468.  
  6469.  
  6470.  
  6471.  
  6472.  
  6473.  
  6474.  
  6475.  
  6476.  
  6477.  
  6478.  
  6479.  
  6480.  
  6481.  
  6482.  
  6483.  
  6484.  
  6485.  
  6486.  
  6487.  
  6488.  
  6489.                                        4-66
  6490.  
  6491.  
  6492.  
  6493.  
  6494.  
  6495.  
  6496.  
  6497.  
  6498.  
  6499.  
  6500.  
  6501.  
  6502.  
  6503.  
  6504.  
  6505.  
  6506.  
  6507.  
  6508.  
  6509.  
  6510.  
  6511.  
  6512.  
  6513.  
  6514.                                                                           67
  6515.  
  6516.  
  6517.                                         Dokumentation FranzBasic
  6518.  
  6519.                                                             SIN
  6520.  
  6521.                     Art:   Funktion
  6522.  
  6523.                     Form:
  6524.  
  6525.                         Sin(y)
  6526.  
  6527.                        y:    numerische Variable
  6528.  
  6529.                     Beschreibung:
  6530.  
  6531.                     'SIN' ermittelt den Sinus-Wert des
  6532.                     Funktionsarguments <y>. Der Wert von <y>
  6533.                     muß in Radians gegeben sein.
  6534.  
  6535.  
  6536.  
  6537.  
  6538.  
  6539.  
  6540.  
  6541.  
  6542.  
  6543.  
  6544.  
  6545.  
  6546.  
  6547.  
  6548.  
  6549.  
  6550.  
  6551.  
  6552.  
  6553.  
  6554.  
  6555.  
  6556.  
  6557.  
  6558.  
  6559.                                        4-67
  6560.  
  6561.  
  6562.  
  6563.  
  6564.  
  6565.  
  6566.  
  6567.  
  6568.  
  6569.  
  6570.  
  6571.  
  6572.  
  6573.  
  6574.  
  6575.  
  6576.  
  6577.  
  6578.  
  6579.  
  6580.  
  6581.  
  6582.  
  6583.  
  6584.                                                                           68
  6585.  
  6586.  
  6587.                                         Dokumentation FranzBasic
  6588.  
  6589.                                                             COS
  6590.  
  6591.                     Art:   Funktion
  6592.  
  6593.                     Form:
  6594.  
  6595.                         Cos(y)
  6596.  
  6597.                        y:    numerische Wert
  6598.  
  6599.                     Beschreibung:
  6600.  
  6601.                     'COS' ermittelt den Cosinus-Wert des
  6602.                     Funktionsarguments <y>. Der Wert von <y>
  6603.                     muß in Radians gegeben sein.
  6604.  
  6605.  
  6606.  
  6607.  
  6608.  
  6609.  
  6610.  
  6611.  
  6612.  
  6613.  
  6614.  
  6615.  
  6616.  
  6617.  
  6618.  
  6619.  
  6620.  
  6621.  
  6622.  
  6623.  
  6624.  
  6625.  
  6626.  
  6627.  
  6628.  
  6629.                                        4-68
  6630.  
  6631.  
  6632.  
  6633.  
  6634.  
  6635.  
  6636.  
  6637.  
  6638.  
  6639.  
  6640.  
  6641.  
  6642.  
  6643.  
  6644.  
  6645.  
  6646.  
  6647.  
  6648.  
  6649.  
  6650.  
  6651.  
  6652.  
  6653.  
  6654.                                                                           69
  6655.  
  6656.  
  6657.                                         Dokumentation FranzBasic
  6658.  
  6659.                                                             TAN
  6660.  
  6661.                     Art:   Funktion
  6662.  
  6663.                     Form:
  6664.  
  6665.                         Tan(y)
  6666.  
  6667.                        y:    numerischer Wert
  6668.  
  6669.                     Beschreibung:
  6670.  
  6671.                     'TAN' ermittelt den Tangens-Wert des
  6672.                     Funktionsarguments <y>. Der Wert von <y>
  6673.                     muß in Radians gegeben sein.
  6674.  
  6675.  
  6676.  
  6677.  
  6678.  
  6679.  
  6680.  
  6681.  
  6682.  
  6683.  
  6684.  
  6685.  
  6686.  
  6687.  
  6688.  
  6689.  
  6690.  
  6691.  
  6692.  
  6693.  
  6694.  
  6695.  
  6696.  
  6697.  
  6698.  
  6699.                                        4-69
  6700.  
  6701.  
  6702.  
  6703.  
  6704.  
  6705.  
  6706.  
  6707.  
  6708.  
  6709.  
  6710.  
  6711.  
  6712.  
  6713.  
  6714.  
  6715.  
  6716.  
  6717.  
  6718.  
  6719.  
  6720.  
  6721.  
  6722.  
  6723.  
  6724.                                                                           70
  6725.  
  6726.  
  6727.                                         Dokumentation FranzBasic
  6728.  
  6729.                                                             ATN
  6730.  
  6731.                     Art:   Funktion
  6732.  
  6733.                     Form:
  6734.  
  6735.                         Atn(y)
  6736.  
  6737.                        y:    numerischer Wert
  6738.  
  6739.                     Beschreibung:
  6740.  
  6741.                     'ATN' ermittelt den Arcustangens-Wert des
  6742.                     Funktionsarguments <y>. Das Ergebnis liegt
  6743.                     im Bereich -PI/2 bis + PI/2.
  6744.  
  6745.  
  6746.  
  6747.  
  6748.  
  6749.  
  6750.  
  6751.  
  6752.  
  6753.  
  6754.  
  6755.  
  6756.  
  6757.  
  6758.  
  6759.  
  6760.  
  6761.  
  6762.  
  6763.  
  6764.  
  6765.  
  6766.  
  6767.  
  6768.  
  6769.                                        4-70
  6770.  
  6771.  
  6772.  
  6773.  
  6774.  
  6775.  
  6776.  
  6777.  
  6778.  
  6779.  
  6780.  
  6781.  
  6782.  
  6783.  
  6784.  
  6785.  
  6786.  
  6787.  
  6788.  
  6789.  
  6790.  
  6791.  
  6792.  
  6793.  
  6794.                                                                           71
  6795.  
  6796.  
  6797.                                         Dokumentation FranzBasic
  6798.  
  6799.                                                             EXP
  6800.  
  6801.                     Art:   Funktion
  6802.  
  6803.                     Form:
  6804.  
  6805.                         Exp(y)
  6806.  
  6807.                        y:    numerischer Wert
  6808.  
  6809.                     Beschreibung:
  6810.  
  6811.                     'EXP' ermittelt den Exponential-Wert des
  6812.                     Funktionsarguments <y>.
  6813.  
  6814.  
  6815.  
  6816.  
  6817.  
  6818.  
  6819.  
  6820.  
  6821.  
  6822.  
  6823.  
  6824.  
  6825.  
  6826.  
  6827.  
  6828.  
  6829.  
  6830.  
  6831.  
  6832.  
  6833.  
  6834.  
  6835.  
  6836.  
  6837.  
  6838.  
  6839.                                        4-71
  6840.  
  6841.  
  6842.  
  6843.  
  6844.  
  6845.  
  6846.  
  6847.  
  6848.  
  6849.  
  6850.  
  6851.  
  6852.  
  6853.  
  6854.  
  6855.  
  6856.  
  6857.  
  6858.  
  6859.  
  6860.  
  6861.  
  6862.  
  6863.  
  6864.                                                                           72
  6865.  
  6866.  
  6867.                                         Dokumentation FranzBasic
  6868.  
  6869.                                                             LOG
  6870.  
  6871.                     Art:   Funktion
  6872.  
  6873.                     Form:
  6874.  
  6875.                         Log(y)
  6876.  
  6877.                        y:    numerischer Wert
  6878.  
  6879.                     Beschreibung:
  6880.  
  6881.                     'LOG' ermittelt den natürlichen Logarithmus
  6882.                     des Funktionsarguments <y>. Der Wert von
  6883.                     <y> muß größer als Null sein.
  6884.  
  6885.  
  6886.  
  6887.  
  6888.  
  6889.  
  6890.  
  6891.  
  6892.  
  6893.  
  6894.  
  6895.  
  6896.  
  6897.  
  6898.  
  6899.  
  6900.  
  6901.  
  6902.  
  6903.  
  6904.  
  6905.  
  6906.  
  6907.  
  6908.  
  6909.                                        4-72
  6910.  
  6911.  
  6912.  
  6913.  
  6914.  
  6915.  
  6916.  
  6917.  
  6918.  
  6919.  
  6920.  
  6921.  
  6922.  
  6923.  
  6924.  
  6925.  
  6926.  
  6927.  
  6928.  
  6929.  
  6930.  
  6931.  
  6932.  
  6933.  
  6934.                                                                           73
  6935.  
  6936.  
  6937.                                         Dokumentation FranzBasic
  6938.  
  6939.                                                             SQR
  6940.  
  6941.                     Art:   Funktion
  6942.  
  6943.                     Form:
  6944.  
  6945.                         Sqr(y)
  6946.  
  6947.                        y:    numerischer Wert
  6948.  
  6949.                     Beschreibung:
  6950.  
  6951.                     'SQR' ermittelt die quadratische Wurzel
  6952.                     des Funktionsarguments <y>. Der Wert von
  6953.                     <y> darf nicht negativ sein.
  6954.  
  6955.  
  6956.  
  6957.  
  6958.  
  6959.  
  6960.  
  6961.  
  6962.  
  6963.  
  6964.  
  6965.  
  6966.  
  6967.  
  6968.  
  6969.  
  6970.  
  6971.  
  6972.  
  6973.  
  6974.  
  6975.  
  6976.  
  6977.  
  6978.  
  6979.                                        4-73
  6980.  
  6981.  
  6982.  
  6983.  
  6984.  
  6985.  
  6986.  
  6987.  
  6988.  
  6989.  
  6990.  
  6991.  
  6992.  
  6993.  
  6994.  
  6995.  
  6996.  
  6997.  
  6998.  
  6999.  
  7000.  
  7001.  
  7002.  
  7003.  
  7004.                                                                           74
  7005.  
  7006.  
  7007.                                         Dokumentation FranzBasic
  7008.  
  7009.  
  7010.                     4.6 String-Statements und -Funktionen
  7011.  
  7012.                                                            SET$
  7013.  
  7014.                     Art:   Statement
  7015.  
  7016.                     Form:
  7017.  
  7018.                         Set$ String$, Index%, Teilstring$
  7019.  
  7020.                        String$:         Stringvariable
  7021.                        Index%:      Integer
  7022.                        Teilstring$:      String
  7023.  
  7024.                     Beschreibung:
  7025.  
  7026.                     'SET$' überschreibt die Zeichen der
  7027.                     Stringvariablen <String$> mit Zeichen aus
  7028.                     dem String <Teilstring$>. <Index%> ist die
  7029.                     Stelle innerhalb von <String$>, wo das
  7030.                     erste Zeichen von <Teilstring$> plaziert
  7031.                     wird. Das Überschreiben vergrößert die
  7032.                     ursprüngliche Länge von <String$>, wenn die
  7033.                     Länge von <Teilstring$> das erfordert.
  7034.  
  7035.                     Beispiel:
  7036.  
  7037.                        A$ = "ABcd" : Teil$ = "xx"
  7038.                        Set$ A$,2,Teil$
  7039.                        Print A$
  7040.                        -->Axxd
  7041.  
  7042.                     Siehe auch:
  7043.  
  7044.                     INSERT$
  7045.  
  7046.  
  7047.  
  7048.  
  7049.                                        4-74
  7050.  
  7051.  
  7052.  
  7053.  
  7054.  
  7055.  
  7056.  
  7057.  
  7058.  
  7059.  
  7060.  
  7061.  
  7062.  
  7063.  
  7064.  
  7065.  
  7066.  
  7067.  
  7068.  
  7069.  
  7070.  
  7071.  
  7072.  
  7073.  
  7074.                                                                           75
  7075.  
  7076.  
  7077.                                         Dokumentation FranzBasic
  7078.  
  7079.                                                         DELETE$
  7080.  
  7081.                     Art:   Statement
  7082.  
  7083.                     Form:
  7084.  
  7085.                         Delete$ String$, Index%, Anzahl%
  7086.  
  7087.                        String$:      Stringvariable
  7088.                        Index%:   Integer
  7089.                        Anzahl%:      Integer
  7090.  
  7091.                     Beschreibung:
  7092.  
  7093.                     'DELETE$' löscht in der Stringvariablen
  7094.                     <String$> ab der Stelle <Index%> <Anzahl%>
  7095.                     Zeichen. <String$> wird entsprechend
  7096.                     kürzer.
  7097.  
  7098.                     Beispiel:
  7099.  
  7100.                        A$ = "ABcd"
  7101.                        Delete A$,2,2
  7102.                        Print A$
  7103.                        -->Ad
  7104.  
  7105.  
  7106.  
  7107.  
  7108.  
  7109.  
  7110.  
  7111.  
  7112.  
  7113.  
  7114.  
  7115.  
  7116.  
  7117.  
  7118.  
  7119.                                        4-75
  7120.  
  7121.  
  7122.  
  7123.  
  7124.  
  7125.  
  7126.  
  7127.  
  7128.  
  7129.  
  7130.  
  7131.  
  7132.  
  7133.  
  7134.  
  7135.  
  7136.  
  7137.  
  7138.  
  7139.  
  7140.  
  7141.  
  7142.  
  7143.  
  7144.                                                                           76
  7145.  
  7146.  
  7147.                                         Dokumentation FranzBasic
  7148.  
  7149.                                                         INSERT$
  7150.  
  7151.                     Art:   Statement
  7152.  
  7153.                     Form:
  7154.  
  7155.                        Insert$ String$, Index%, Teilstring$
  7156.  
  7157.                        String$:         Stringvariable
  7158.                        Index%:      Integer
  7159.                        Teilstring$:      String
  7160.  
  7161.                     Beschreibung:
  7162.  
  7163.                     'INSERT$' fügt <Teilstring$> an der Stelle
  7164.                     <Index%> in <String$> ein.
  7165.  
  7166.                     Beispiel:
  7167.  
  7168.                        A$ = "Ad" : Teil$ = "Bc"
  7169.                        Insert$ A$,2,Teil$
  7170.                        Print A$
  7171.                        -->ABcd
  7172.  
  7173.                     Siehe auch:
  7174.  
  7175.                     SET$
  7176.  
  7177.  
  7178.  
  7179.  
  7180.  
  7181.  
  7182.  
  7183.  
  7184.  
  7185.  
  7186.  
  7187.  
  7188.  
  7189.                                        4-76
  7190.  
  7191.  
  7192.  
  7193.  
  7194.  
  7195.  
  7196.  
  7197.  
  7198.  
  7199.  
  7200.  
  7201.  
  7202.  
  7203.  
  7204.  
  7205.  
  7206.  
  7207.  
  7208.  
  7209.  
  7210.  
  7211.  
  7212.  
  7213.  
  7214.                                                                           77
  7215.  
  7216.  
  7217.                                         Dokumentation FranzBasic
  7218.  
  7219.                                                          INSTR%
  7220.  
  7221.                     Art:   Funktion
  7222.  
  7223.                     Form:
  7224.  
  7225.                         Instr%(String$, Teilstring$)
  7226.  
  7227.                        String$:         String
  7228.                        Teilstring$:      String
  7229.  
  7230.                     Beschreibung:
  7231.  
  7232.                     'INSTR%' prüft ob <Teilstring$> in
  7233.                     <String$> enthalten ist. Wenn ja, gibt
  7234.                     'INSTR%' die Stelle innerhalb von <String$>
  7235.                     zurück, an der <Teilstring$> beginnt.
  7236.                     Andernfalls wird 0 zurückgegeben.
  7237.  
  7238.                     Beispiel:
  7239.  
  7240.                        A$ = "ABcd"
  7241.                        index% = Instr% (A$,"Bc")
  7242.                        Print index%
  7243.                        -->2
  7244.  
  7245.  
  7246.  
  7247.  
  7248.  
  7249.  
  7250.  
  7251.  
  7252.  
  7253.  
  7254.  
  7255.  
  7256.  
  7257.  
  7258.  
  7259.                                        4-77
  7260.  
  7261.  
  7262.  
  7263.  
  7264.  
  7265.  
  7266.  
  7267.  
  7268.  
  7269.  
  7270.  
  7271.  
  7272.  
  7273.  
  7274.  
  7275.  
  7276.  
  7277.  
  7278.  
  7279.  
  7280.  
  7281.  
  7282.  
  7283.  
  7284.                                                                           78
  7285.  
  7286.  
  7287.                                         Dokumentation FranzBasic
  7288.  
  7289.                                                           LEFT$
  7290.  
  7291.                     Art:   Funktion
  7292.  
  7293.                     Form:
  7294.  
  7295.                         Left$(String$, Anzahl%)
  7296.  
  7297.                        String$:         String
  7298.                        Anzahl%:      Integer
  7299.  
  7300.                     Beschreibung:
  7301.  
  7302.                     'LEFT$' bildet aus dem 'linken' Teil von
  7303.                     <String$> einen Teilstring der Länge
  7304.                     <Anzahl%>, d.h. die ersten <Anzahl%>
  7305.                     Zeichen bilden den zurückgegebenen neuen
  7306.                     String. <String$> bleibt unverändert.
  7307.  
  7308.                     Beispiel:
  7309.  
  7310.                        A$ = Left$("ABcd",2)
  7311.                        Print A$
  7312.                        -->AB
  7313.  
  7314.                     Siehe auch:
  7315.  
  7316.                     RIGHT$, MID$
  7317.  
  7318.  
  7319.  
  7320.  
  7321.  
  7322.  
  7323.  
  7324.  
  7325.  
  7326.  
  7327.  
  7328.  
  7329.                                        4-78
  7330.  
  7331.  
  7332.  
  7333.  
  7334.  
  7335.  
  7336.  
  7337.  
  7338.  
  7339.  
  7340.  
  7341.  
  7342.  
  7343.  
  7344.  
  7345.  
  7346.  
  7347.  
  7348.  
  7349.  
  7350.  
  7351.  
  7352.  
  7353.  
  7354.                                                                           79
  7355.  
  7356.  
  7357.                                         Dokumentation FranzBasic
  7358.  
  7359.                                                          RIGHT$
  7360.  
  7361.                     Art:   Funktion
  7362.  
  7363.                     Form:
  7364.  
  7365.                         Right$(String$, Anzahl%)
  7366.  
  7367.                        String$:         String
  7368.                        Anzahl%:         Integer
  7369.  
  7370.                     Beschreibung:
  7371.  
  7372.                     'RIGHT$' bildet aus dem 'rechten' Teil von
  7373.                     <String$> einen Teilstring der Länge
  7374.                     <Anzahl%>, d.h. die letzten <Anzahl%>
  7375.                     Zeichen bilden den zurückgegebenen neuen
  7376.                     String. <String$> bleibt unverändert.
  7377.  
  7378.                     Beispiel:
  7379.  
  7380.                        Print Right$("ABcd",2)
  7381.                        -->cd
  7382.  
  7383.                     Siehe auch:
  7384.  
  7385.                     LEFT$, MID$
  7386.  
  7387.  
  7388.  
  7389.  
  7390.  
  7391.  
  7392.  
  7393.  
  7394.  
  7395.  
  7396.  
  7397.  
  7398.  
  7399.                                        4-79
  7400.  
  7401.  
  7402.  
  7403.  
  7404.  
  7405.  
  7406.  
  7407.  
  7408.  
  7409.  
  7410.  
  7411.  
  7412.  
  7413.  
  7414.  
  7415.  
  7416.  
  7417.  
  7418.  
  7419.  
  7420.  
  7421.  
  7422.  
  7423.  
  7424.                                                                           80
  7425.  
  7426.  
  7427.                                         Dokumentation FranzBasic
  7428.  
  7429.                                                            MID$
  7430.  
  7431.                     Art:   Funktion
  7432.  
  7433.                     Form:
  7434.  
  7435.                         Mid$(String$, Index%, Anzahl%)
  7436.  
  7437.                        String$:      String
  7438.                        Index%:   Integer
  7439.                        Anzahl%:      Integer
  7440.  
  7441.                     Beschreibung:
  7442.  
  7443.                     'MID$' bildet aus <String$> einen
  7444.                     Teilstring der Länge <Anzahl%> beginnend ab
  7445.                     Zeichen <Index%>.
  7446.  
  7447.                     Beispiel:
  7448.  
  7449.                        A$ = "ABcd"
  7450.                        A$ = Mid$(A$,2,2)
  7451.                        Print A$
  7452.                        -->Bc
  7453.  
  7454.                     Siehe auch:
  7455.  
  7456.                     LEFT$, RIGHT$
  7457.  
  7458.  
  7459.  
  7460.  
  7461.  
  7462.  
  7463.  
  7464.  
  7465.  
  7466.  
  7467.  
  7468.  
  7469.                                        4-80
  7470.  
  7471.  
  7472.  
  7473.  
  7474.  
  7475.  
  7476.  
  7477.  
  7478.  
  7479.  
  7480.  
  7481.  
  7482.  
  7483.  
  7484.  
  7485.  
  7486.  
  7487.  
  7488.  
  7489.  
  7490.  
  7491.  
  7492.  
  7493.  
  7494.                                                                           81
  7495.  
  7496.  
  7497.                                         Dokumentation FranzBasic
  7498.  
  7499.                                                           TRIM$
  7500.  
  7501.                     Art:   Funktion
  7502.  
  7503.                     Form:
  7504.  
  7505.                         Trim$(String$)
  7506.  
  7507.                        String$:         String
  7508.  
  7509.                     Beschreibung:
  7510.  
  7511.                     'TRIM$' schneidet von <String$> eventuell
  7512.                     vorhandene nachfolgende Leerstellen ab.
  7513.  
  7514.                     Beispiel:
  7515.  
  7516.                        Rectype Rtype
  7517.                           Recvar A$ 12
  7518.                        Endrec
  7519.                        Record Rtype R
  7520.                        R.a$ = "123"
  7521.                        B$ = R.a$+"!"
  7522.                        Print B$
  7523.                        -->123         !
  7524.                        B$ = Trim$(R.a$)+"!"
  7525.                        Print B$
  7526.                        -->123!
  7527.  
  7528.                     Siehe auch:
  7529.  
  7530.                     LTRIM$
  7531.  
  7532.  
  7533.  
  7534.  
  7535.  
  7536.  
  7537.  
  7538.  
  7539.                                        4-81
  7540.  
  7541.  
  7542.  
  7543.  
  7544.  
  7545.  
  7546.  
  7547.  
  7548.  
  7549.  
  7550.  
  7551.  
  7552.  
  7553.  
  7554.  
  7555.  
  7556.  
  7557.  
  7558.  
  7559.  
  7560.  
  7561.  
  7562.  
  7563.  
  7564.                                                                           82
  7565.  
  7566.  
  7567.                                         Dokumentation FranzBasic
  7568.  
  7569.                                                          LTRIM$
  7570.  
  7571.                     Art:   Funktion
  7572.  
  7573.                     Form:
  7574.  
  7575.                         Ltrim$(String$)
  7576.  
  7577.                        String$:         String
  7578.  
  7579.                     Beschreibung:
  7580.  
  7581.                     'LTRIM$' schneidet von <String$> eventuell
  7582.                     vorhandene führende Leerstellen ab.
  7583.  
  7584.                     Beispiel:
  7585.  
  7586.                        B$ = "   123"
  7587.                        Print B$
  7588.                        -->   123
  7589.                        B$ = Trim$(B$)
  7590.                        Print B$
  7591.                        -->123
  7592.  
  7593.                     Siehe auch:
  7594.  
  7595.                     TRIM$
  7596.  
  7597.  
  7598.  
  7599.  
  7600.  
  7601.  
  7602.  
  7603.  
  7604.  
  7605.  
  7606.  
  7607.  
  7608.  
  7609.                                        4-82
  7610.  
  7611.  
  7612.  
  7613.  
  7614.  
  7615.  
  7616.  
  7617.  
  7618.  
  7619.  
  7620.  
  7621.  
  7622.  
  7623.  
  7624.  
  7625.  
  7626.  
  7627.  
  7628.  
  7629.  
  7630.  
  7631.  
  7632.  
  7633.  
  7634.                                                                           83
  7635.  
  7636.  
  7637.                                         Dokumentation FranzBasic
  7638.  
  7639.                                                          LCASE$
  7640.  
  7641.                     Art:   Funktion
  7642.  
  7643.                     Form:
  7644.  
  7645.                         Lcase$(String$)
  7646.  
  7647.                        String$:         String
  7648.  
  7649.                     Beschreibung:
  7650.  
  7651.                     'LCASE$' wandelt alle Großbuchstaben in
  7652.                     <String$> in Kleinbuchstaben im
  7653.                     zurückgegebenen String. <String$> bleibt
  7654.                     unverändert.
  7655.  
  7656.                     Beispiel:
  7657.  
  7658.                        B$ = "ABcd"
  7659.                        Print B$
  7660.                        -->ABcd
  7661.                        B$ = Lcase(B$)
  7662.                        Print B$
  7663.                        -->abcd
  7664.  
  7665.                     Siehe auch:
  7666.  
  7667.                     UCASE$
  7668.  
  7669.  
  7670.  
  7671.  
  7672.  
  7673.  
  7674.  
  7675.  
  7676.  
  7677.  
  7678.  
  7679.                                        4-83
  7680.  
  7681.  
  7682.  
  7683.  
  7684.  
  7685.  
  7686.  
  7687.  
  7688.  
  7689.  
  7690.  
  7691.  
  7692.  
  7693.  
  7694.  
  7695.  
  7696.  
  7697.  
  7698.  
  7699.  
  7700.  
  7701.  
  7702.  
  7703.  
  7704.                                                                           84
  7705.  
  7706.  
  7707.                                         Dokumentation FranzBasic
  7708.  
  7709.                                                          UCASE$
  7710.  
  7711.                     Art:   Funktion
  7712.  
  7713.                     Form:
  7714.  
  7715.                         Ucase$(String$)
  7716.  
  7717.                        String$:         String
  7718.  
  7719.                     Beschreibung:
  7720.  
  7721.                     'UCASE$' wandelt alle Kleinbuchstaben in
  7722.                     <String$> in Großbuchstaben im
  7723.                     zurückgegebenen String. <String$> bleibt
  7724.                     unverändert.
  7725.  
  7726.                     Beispiel:
  7727.  
  7728.                        Print Ucase$("ABcd")
  7729.                        -->ABCD
  7730.  
  7731.                     Siehe auch:
  7732.  
  7733.                     LCASE$
  7734.  
  7735.  
  7736.  
  7737.  
  7738.  
  7739.  
  7740.  
  7741.  
  7742.  
  7743.  
  7744.  
  7745.  
  7746.  
  7747.  
  7748.  
  7749.                                        4-84
  7750.  
  7751.  
  7752.  
  7753.  
  7754.  
  7755.  
  7756.  
  7757.  
  7758.  
  7759.  
  7760.  
  7761.  
  7762.  
  7763.  
  7764.  
  7765.  
  7766.  
  7767.  
  7768.  
  7769.  
  7770.  
  7771.  
  7772.  
  7773.  
  7774.                                                                           85
  7775.  
  7776.  
  7777.                                         Dokumentation FranzBasic
  7778.  
  7779.                                                            LEN%
  7780.  
  7781.                     Art:   Funktion
  7782.  
  7783.                     Form:
  7784.  
  7785.                         Len%(String$)
  7786.  
  7787.                        String$:         String
  7788.  
  7789.                     Beschreibung:
  7790.  
  7791.                     'LEN%' ermittelt die Länge von <String$>,
  7792.                     d.h. die Anzahl der enthaltenen Zeichen.
  7793.  
  7794.                     Beispiel:
  7795.  
  7796.                        Print Len%("ABcd")
  7797.                        -->4
  7798.  
  7799.  
  7800.  
  7801.  
  7802.  
  7803.  
  7804.  
  7805.  
  7806.  
  7807.  
  7808.  
  7809.  
  7810.  
  7811.  
  7812.  
  7813.  
  7814.  
  7815.  
  7816.  
  7817.  
  7818.  
  7819.                                        4-85
  7820.  
  7821.  
  7822.  
  7823.  
  7824.  
  7825.  
  7826.  
  7827.  
  7828.  
  7829.  
  7830.  
  7831.  
  7832.  
  7833.  
  7834.  
  7835.  
  7836.  
  7837.  
  7838.  
  7839.  
  7840.  
  7841.  
  7842.  
  7843.  
  7844.                                                                           86
  7845.  
  7846.  
  7847.                                         Dokumentation FranzBasic
  7848.  
  7849.                                                            ASC%
  7850.  
  7851.                     Art:   Funktion
  7852.  
  7853.                     Form:
  7854.  
  7855.                         Asc%(String$)
  7856.  
  7857.                        String$:         String
  7858.  
  7859.                     Beschreibung:
  7860.  
  7861.                     'ASC%' liefert den ASCII-Zahlenwert des
  7862.                     ersten Zeichens von <String$>.
  7863.  
  7864.                     Beispiel:
  7865.  
  7866.                        Print Asc%("ABcd")
  7867.                        -->65
  7868.  
  7869.                     Siehe auch:
  7870.  
  7871.                     CHR$
  7872.  
  7873.  
  7874.  
  7875.  
  7876.  
  7877.  
  7878.  
  7879.  
  7880.  
  7881.  
  7882.  
  7883.  
  7884.  
  7885.  
  7886.  
  7887.  
  7888.  
  7889.                                        4-86
  7890.  
  7891.  
  7892.  
  7893.  
  7894.  
  7895.  
  7896.  
  7897.  
  7898.  
  7899.  
  7900.  
  7901.  
  7902.  
  7903.  
  7904.  
  7905.  
  7906.  
  7907.  
  7908.  
  7909.  
  7910.  
  7911.  
  7912.  
  7913.  
  7914.                                                                           87
  7915.  
  7916.  
  7917.                                         Dokumentation FranzBasic
  7918.  
  7919.                                                            CHR$
  7920.  
  7921.                     Art:   Funktion
  7922.  
  7923.                     Form:
  7924.  
  7925.                         Chr$(n%)
  7926.  
  7927.                        n%:      Integer
  7928.  
  7929.                     Beschreibung:
  7930.  
  7931.                     'CHR$' wandelt den Wert von <n%> in ein
  7932.                     Zeichen laut ACSII-Tabelle. Umkehrfunktion
  7933.                     zu 'ASC%'
  7934.  
  7935.                     Beispiel:
  7936.  
  7937.                        Print Chr$(65)
  7938.                        -->A
  7939.  
  7940.                     Siehe auch:
  7941.  
  7942.                     ASC%
  7943.  
  7944.  
  7945.  
  7946.  
  7947.  
  7948.  
  7949.  
  7950.  
  7951.  
  7952.  
  7953.  
  7954.  
  7955.  
  7956.  
  7957.  
  7958.  
  7959.                                        4-87
  7960.  
  7961.  
  7962.  
  7963.  
  7964.  
  7965.  
  7966.  
  7967.  
  7968.  
  7969.  
  7970.  
  7971.  
  7972.  
  7973.  
  7974.  
  7975.  
  7976.  
  7977.  
  7978.  
  7979.  
  7980.  
  7981.  
  7982.  
  7983.  
  7984.                                                                           88
  7985.  
  7986.  
  7987.                                         Dokumentation FranzBasic
  7988.  
  7989.                                                            STR$
  7990.  
  7991.                     Art:   Funktion
  7992.  
  7993.                     Form:
  7994.  
  7995.                         Str$(n%)
  7996.  
  7997.                        n%:   numerische Konstante / Variable
  7998.  
  7999.                     Beschreibung:
  8000.  
  8001.                     'STR$' macht aus der Zahl <n%> eine
  8002.                     Zeichenkette.
  8003.  
  8004.                     Beispiel:
  8005.  
  8006.                        A$ = "**"+Str$(100.0)+"KG"
  8007.                        Print A$
  8008.                        -->**100.000000KG
  8009.  
  8010.                     Siehe auch:
  8011.  
  8012.                     VAL%, VAL
  8013.  
  8014.  
  8015.  
  8016.  
  8017.  
  8018.  
  8019.  
  8020.  
  8021.  
  8022.  
  8023.  
  8024.  
  8025.  
  8026.  
  8027.  
  8028.  
  8029.                                        4-88
  8030.  
  8031.  
  8032.  
  8033.  
  8034.  
  8035.  
  8036.  
  8037.  
  8038.  
  8039.  
  8040.  
  8041.  
  8042.  
  8043.  
  8044.  
  8045.  
  8046.  
  8047.  
  8048.  
  8049.  
  8050.  
  8051.  
  8052.  
  8053.  
  8054.                                                                           89
  8055.  
  8056.  
  8057.                                         Dokumentation FranzBasic
  8058.  
  8059.                                                             VAL
  8060.  
  8061.                     Art:   Funktion
  8062.  
  8063.                     Form:
  8064.  
  8065.                         Val(String$)
  8066.  
  8067.                        String$:         String
  8068.  
  8069.                     Beschreibung:
  8070.  
  8071.                     'VAL' wandelt <String$> in eine Realzahl.
  8072.                     Zusammen mit 'VAL%' Umkehrfunktion zu
  8073.                     'STR$'.
  8074.  
  8075.                     Beispiel:
  8076.  
  8077.                        R = 100.0 + VAL("10.0")
  8078.                        Print R
  8079.                        -->110.000000
  8080.  
  8081.                     Siehe auch:
  8082.  
  8083.                     VAL%, STR$
  8084.  
  8085.  
  8086.  
  8087.  
  8088.  
  8089.  
  8090.  
  8091.  
  8092.  
  8093.  
  8094.  
  8095.  
  8096.  
  8097.  
  8098.  
  8099.                                        4-89
  8100.  
  8101.  
  8102.  
  8103.  
  8104.  
  8105.  
  8106.  
  8107.  
  8108.  
  8109.  
  8110.  
  8111.  
  8112.  
  8113.  
  8114.  
  8115.  
  8116.  
  8117.  
  8118.  
  8119.  
  8120.  
  8121.  
  8122.  
  8123.  
  8124.                                                                           90
  8125.  
  8126.  
  8127.                                         Dokumentation FranzBasic
  8128.  
  8129.                                                            VAL%
  8130.  
  8131.                     Art:   Funktion
  8132.  
  8133.                     Form:
  8134.  
  8135.                         Val%(String$)
  8136.  
  8137.                        String$:         String
  8138.  
  8139.                     Beschreibung:
  8140.  
  8141.                     'VAL%' wandelt <String$> in eine
  8142.                     Integerzahl. Zusammen mit 'VAL'
  8143.                     Umkehrfunktion zu 'STR$'.
  8144.  
  8145.                     Beispiel:
  8146.  
  8147.                        N% = 100 + VAL("10")
  8148.                        Print N%
  8149.                        -->110
  8150.  
  8151.                     Siehe auch:
  8152.  
  8153.                     VAL, STR$
  8154.  
  8155.  
  8156.  
  8157.  
  8158.  
  8159.  
  8160.  
  8161.  
  8162.  
  8163.  
  8164.  
  8165.  
  8166.  
  8167.  
  8168.  
  8169.                                        4-90
  8170.  
  8171.  
  8172.  
  8173.  
  8174.  
  8175.  
  8176.  
  8177.  
  8178.  
  8179.  
  8180.  
  8181.  
  8182.  
  8183.  
  8184.  
  8185.  
  8186.  
  8187.  
  8188.  
  8189.  
  8190.  
  8191.  
  8192.  
  8193.  
  8194.                                                                           91
  8195.  
  8196.  
  8197.                                         Dokumentation FranzBasic
  8198.  
  8199.  
  8200.                     4.7 Bildschirm-Steuerung
  8201.  
  8202.                                                             CLS
  8203.  
  8204.                     Art:   Statement
  8205.  
  8206.                     Form:
  8207.  
  8208.                         Cls [n]
  8209.  
  8210.                        n:       Integer
  8211.  
  8212.                     Beschreibung:
  8213.  
  8214.                     'CLS' löscht den Bildschirm. Ist ein
  8215.                     Integer <n> zwischen 1 und 255 angegeben,
  8216.                     wird der Bildschirm mit dem entsprechenden
  8217.                     Zeichen laut ASCII-Zeichensatz gefüllt.
  8218.  
  8219.                     Beispiel:
  8220.  
  8221.                        Cls 176
  8222.  
  8223.  
  8224.  
  8225.  
  8226.  
  8227.  
  8228.  
  8229.  
  8230.  
  8231.  
  8232.  
  8233.  
  8234.  
  8235.  
  8236.  
  8237.  
  8238.  
  8239.                                        4-91
  8240.  
  8241.  
  8242.  
  8243.  
  8244.  
  8245.  
  8246.  
  8247.  
  8248.  
  8249.  
  8250.  
  8251.  
  8252.  
  8253.  
  8254.  
  8255.  
  8256.  
  8257.  
  8258.  
  8259.  
  8260.  
  8261.  
  8262.  
  8263.  
  8264.                                                                           92
  8265.  
  8266.  
  8267.                                         Dokumentation FranzBasic
  8268.  
  8269.                                                          COLOUR
  8270.  
  8271.                     Art:   Statement
  8272.  
  8273.                     Form:
  8274.  
  8275.                         Colour v%[,h%]
  8276.  
  8277.                        v%:   Integer
  8278.                        h%:   Integer
  8279.  
  8280.                     Beschreibung:
  8281.  
  8282.                     'COLOUR' stellt die Farben für Bildschirm-
  8283.                     Ausgaben mit 'PRINT' ein. <v%> ist die
  8284.                     Vordergrundfarbe, <h%> die
  8285.                     Hintergrundfarbe, ist letztere nicht
  8286.                     angegeben, bleibt die Hintergrundfarbe
  8287.                     unverändert. Die möglichen Farben sind:
  8288.  
  8289.                        0  Schwarz
  8290.                        1  Blau
  8291.                        2  Grün
  8292.                        3  Hellblau
  8293.                        4  Rot
  8294.                        5  Violett
  8295.                        6  Gelb/Braun
  8296.                        7  Weiß
  8297.  
  8298.                     Beispiel:
  8299.  
  8300.                        Colour 7,1
  8301.  
  8302.  
  8303.  
  8304.  
  8305.  
  8306.  
  8307.  
  8308.  
  8309.                                        4-92
  8310.  
  8311.  
  8312.  
  8313.  
  8314.  
  8315.  
  8316.  
  8317.  
  8318.  
  8319.  
  8320.  
  8321.  
  8322.  
  8323.  
  8324.  
  8325.  
  8326.  
  8327.  
  8328.  
  8329.  
  8330.  
  8331.  
  8332.  
  8333.  
  8334.                                                                           93
  8335.  
  8336.  
  8337.                                         Dokumentation FranzBasic
  8338.  
  8339.                                                          LOCATE
  8340.  
  8341.                     Art:   Statement
  8342.  
  8343.                     Form:
  8344.  
  8345.                         Locate x%, y%
  8346.  
  8347.                        x%:   Integer
  8348.                        y%:   Integer
  8349.  
  8350.                     Beschreibung:
  8351.  
  8352.                     'LOCATE' setzt den Cursor auf dem
  8353.                     Bildschirm auf Spalte <x%> und Zeile <y%>,
  8354.                     mit 1 <= <x%> <= 80 und 1 <= <y%> <= 25.
  8355.  
  8356.                     Beispiel:
  8357.  
  8358.                        Locate 80, 25  ' Cursor links unten
  8359.  
  8360.  
  8361.  
  8362.  
  8363.  
  8364.  
  8365.  
  8366.  
  8367.  
  8368.  
  8369.  
  8370.  
  8371.  
  8372.  
  8373.  
  8374.  
  8375.  
  8376.  
  8377.  
  8378.  
  8379.                                        4-93
  8380.  
  8381.  
  8382.  
  8383.  
  8384.  
  8385.  
  8386.  
  8387.  
  8388.  
  8389.  
  8390.  
  8391.  
  8392.  
  8393.  
  8394.  
  8395.  
  8396.  
  8397.  
  8398.  
  8399.  
  8400.  
  8401.  
  8402.  
  8403.  
  8404.                                                                           94
  8405.  
  8406.  
  8407.                                         Dokumentation FranzBasic
  8408.  
  8409.  
  8410.                     4.8 Verschiedenes
  8411.  
  8412.                                                             REM
  8413.  
  8414.                     Art:   Statement
  8415.  
  8416.                     Form:
  8417.  
  8418.                         Rem Str
  8419.  
  8420.                        Str:         Kommentar
  8421.  
  8422.                     Beschreibung:
  8423.  
  8424.                     'REM' leitet eine Kommentarzeile ein. <Str>
  8425.                     ist ein Kommentar, der vom Übersetzer nicht
  8426.                     ausgewertet wird. 'REM' ist eine
  8427.                     nichtausführbare Anweisung.
  8428.  
  8429.                     Beispiel:
  8430.  
  8431.                        Rem  Dies ist ein Kommentar
  8432.  
  8433.                     Siehe auch:
  8434.  
  8435.                     '
  8436.  
  8437.  
  8438.  
  8439.  
  8440.  
  8441.  
  8442.  
  8443.  
  8444.  
  8445.  
  8446.  
  8447.  
  8448.  
  8449.                                        4-94
  8450.  
  8451.  
  8452.  
  8453.  
  8454.  
  8455.  
  8456.  
  8457.  
  8458.  
  8459.  
  8460.  
  8461.  
  8462.  
  8463.  
  8464.  
  8465.  
  8466.  
  8467.  
  8468.  
  8469.  
  8470.  
  8471.  
  8472.  
  8473.  
  8474.                                                                           95
  8475.  
  8476.  
  8477.                                         Dokumentation FranzBasic
  8478.  
  8479.                                                               '
  8480.  
  8481.                     Art:   Statement
  8482.  
  8483.                     Form:
  8484.  
  8485.                         'Str
  8486.  
  8487.                        Str:         Kommentar
  8488.  
  8489.                     Beschreibung:
  8490.  
  8491.                     ' leitet einen Kommentar ein. <Str> ist ein
  8492.                     Kommentar, der vom Übersetzer nicht
  8493.                     ausgewertet wird. ' ist eine
  8494.                     nichtausführbare Anweisung. ' kann auch auf
  8495.                     eine andere Anweisung in der Zeile folgen.
  8496.  
  8497.                     Beispiel:
  8498.  
  8499.                        x% = 0 'Dies ist ein Kommentar
  8500.  
  8501.                     Siehe auch:
  8502.  
  8503.                     REM
  8504.  
  8505.  
  8506.  
  8507.  
  8508.  
  8509.  
  8510.  
  8511.  
  8512.  
  8513.  
  8514.  
  8515.  
  8516.  
  8517.  
  8518.  
  8519.                                        4-95
  8520.  
  8521.  
  8522.  
  8523.  
  8524.  
  8525.  
  8526.  
  8527.  
  8528.  
  8529.  
  8530.  
  8531.  
  8532.  
  8533.  
  8534.  
  8535.  
  8536.  
  8537.  
  8538.  
  8539.  
  8540.  
  8541.  
  8542.  
  8543.  
  8544.                                                                           96
  8545.  
  8546.  
  8547.                                         Dokumentation FranzBasic
  8548.  
  8549.                                                        ERROR%()
  8550.  
  8551.                     Art:   Funktion
  8552.  
  8553.                     Form:
  8554.  
  8555.                         Error%()
  8556.  
  8557.                     Beschreibung:
  8558.  
  8559.                     'ERROR%()' liefert den zuletzt entstandenen
  8560.                     Runtime-Error zurück.
  8561.  
  8562.                     Beispiel:
  8563.  
  8564.                        If Error%() <> 0 Then
  8565.                           Print "Laufzeit-Fehler"
  8566.                        Endif
  8567.  
  8568.  
  8569.  
  8570.  
  8571.  
  8572.  
  8573.  
  8574.  
  8575.  
  8576.  
  8577.  
  8578.  
  8579.  
  8580.  
  8581.  
  8582.  
  8583.  
  8584.  
  8585.  
  8586.  
  8587.  
  8588.  
  8589.                                        4-96
  8590.  
  8591.  
  8592.  
  8593.  
  8594.  
  8595.  
  8596.  
  8597.  
  8598.  
  8599.  
  8600.  
  8601.  
  8602.  
  8603.  
  8604.  
  8605.  
  8606.  
  8607.  
  8608.  
  8609.  
  8610.  
  8611.  
  8612.  
  8613.  
  8614.                                                                           97
  8615.  
  8616.  
  8617.                                         Dokumentation FranzBasic
  8618.  
  8619.                                                            EXEC
  8620.  
  8621.                     Art:   Statement
  8622.  
  8623.                     Form:
  8624.  
  8625.                     1.  Exec Programm$
  8626.  
  8627.                     2.  Exec Shell
  8628.  
  8629.                        Programm$:    Stringausdruck
  8630.  
  8631.                     Beschreibung:
  8632.  
  8633.                     Mit 'EXEC' können während der Abarbeitung
  8634.                     eines Programms weitere Programme geladen
  8635.                     und gestartet werden.
  8636.  
  8637.                     Mit der ersten Form kann ein beliebiges
  8638.                     Programm oder ein Kommando des
  8639.                     Betriebssystems gestartet werden. Der
  8640.                     String <Programm$> enthält den
  8641.                     Programmnamen und etwaige Parameter genauso
  8642.                     wie man sie auf Betriebssystem-Ebene
  8643.                     eingeben würde.
  8644.  
  8645.                     Mit der zweiten Form wird der
  8646.                     Kommandoprozessor 'command.com' des
  8647.                     Betriebssystems gestartet, dem dann auf
  8648.                     Betriebssystem-Ebene Kommandos gegeben
  8649.                     werden können. Durch Eingabe des MS-DOS-
  8650.                     Kommandos 'EXIT' wird der Kommandoprozessor
  8651.                     beendet.
  8652.  
  8653.                     Das Programm, das durch 'EXEC' andere
  8654.                     Programme startet, wird während der
  8655.                     Laufzeit des gestarteten Programms
  8656.  
  8657.  
  8658.  
  8659.                                        4-97
  8660.  
  8661.  
  8662.  
  8663.  
  8664.  
  8665.  
  8666.  
  8667.  
  8668.  
  8669.  
  8670.  
  8671.  
  8672.  
  8673.  
  8674.  
  8675.  
  8676.  
  8677.  
  8678.  
  8679.  
  8680.  
  8681.  
  8682.  
  8683.  
  8684.                                                                           98
  8685.  
  8686.  
  8687.                                         Dokumentation FranzBasic
  8688.  
  8689.                     angehalten. Nach Ende des gestarteten
  8690.                     Programms bzw. nach Abarbeitung des
  8691.                     Kommandos läuft das ursprüngliche Programm
  8692.                     weiter
  8693.  
  8694.                     Beispiel:
  8695.  
  8696.                        Exec "dir *.bas"
  8697.  
  8698.                        Exec "abc.exe"
  8699.  
  8700.  
  8701.  
  8702.  
  8703.  
  8704.  
  8705.  
  8706.  
  8707.  
  8708.  
  8709.  
  8710.  
  8711.  
  8712.  
  8713.  
  8714.  
  8715.  
  8716.  
  8717.  
  8718.  
  8719.  
  8720.  
  8721.  
  8722.  
  8723.  
  8724.  
  8725.  
  8726.  
  8727.  
  8728.  
  8729.                                        4-98
  8730.  
  8731.  
  8732.  
  8733.  
  8734.  
  8735.  
  8736.  
  8737.  
  8738.  
  8739.  
  8740.  
  8741.  
  8742.  
  8743.  
  8744.  
  8745.  
  8746.  
  8747.  
  8748.  
  8749.  
  8750.  
  8751.  
  8752.  
  8753.  
  8754.                                                                           99
  8755.  
  8756.  
  8757.                                         Dokumentation FranzBasic
  8758.  
  8759.                                                       INTERRUPT
  8760.  
  8761.                     Art:   Statement
  8762.  
  8763.                     Form:
  8764.  
  8765.                         Interrupt Nr%, Regs
  8766.  
  8767.                        Nr%:         Integer
  8768.                        Regs:     Record
  8769.  
  8770.                     Beschreibung:
  8771.  
  8772.                     'INTERRUPT' erzeugt den Interrupt <Nr>.
  8773.                     Voher werden die Register des Prozessors
  8774.                     auf die Werte des Records <Regs> gesetzt.
  8775.                     <Regs> ist ein Record aus sieben Integers,
  8776.                     welche die Werte für die Prozessor-Register
  8777.                     ax, bx, cx, dx, si, di, cflags (in dieser
  8778.                     Reihenfolge) beinhalten.
  8779.  
  8780.                     Nach Rückkehr vom Interrupt enthalten die
  8781.                     Integers in <Regs> die Werte der Prozessor-
  8782.                     Register aus der Interrupt-Routine.
  8783.  
  8784.                     Beispiel:
  8785.  
  8786.                        Rectype Register
  8787.                           Recvar ax%, bx%, cx%, dx%
  8788.                           Recvar si%, di%, flags%
  8789.                        Endrec
  8790.                        Record Register Reg
  8791.                        Reg.ax% = 256     'ah = 1
  8792.                        Reg.cx% = 256 + 7  'ch = 1, cl = 7
  8793.                        Interrupt 16, Reg 'Block-Cursor setzen
  8794.  
  8795.  
  8796.  
  8797.  
  8798.  
  8799.                                        4-99
  8800.  
  8801.  
  8802.  
  8803.  
  8804.  
  8805.  
  8806.  
  8807.  
  8808.  
  8809.  
  8810.  
  8811.  
  8812.  
  8813.  
  8814.  
  8815.  
  8816.  
  8817.  
  8818.  
  8819.  
  8820.  
  8821.  
  8822.  
  8823.  
  8824.                                                                           100
  8825.  
  8826.  
  8827.                                         Dokumentation FranzBasic
  8828.  
  8829.                                                       TIMEDATE$
  8830.  
  8831.                     Art:   Funktion
  8832.  
  8833.                     Form:
  8834.  
  8835.                         Timedate$(n)
  8836.  
  8837.                     Beschreibung:
  8838.  
  8839.                     'TIMEDATE$' ermittelt  Datum bzw.  Uhrzeit.
  8840.                     <n> ist  ein Parameter,  der das gewünschte
  8841.                     Ergebnis selektiert:
  8842.  
  8843.                     n=1   Zeit
  8844.                     n=2   Datum amerikanische Form
  8845.                     n=3   Datum deutsche Form
  8846.  
  8847.                     Beispiel:
  8848.  
  8849.                        Print Timedate$(1)
  8850.                        -->17:24:12
  8851.                        Print Timedate$(2)
  8852.                        -->10/28/89
  8853.                        Print Timedate$(3)
  8854.                        -->28.10.89
  8855.  
  8856.  
  8857.  
  8858.  
  8859.  
  8860.  
  8861.  
  8862.  
  8863.  
  8864.  
  8865.  
  8866.  
  8867.  
  8868.  
  8869.                                       4-100
  8870.  
  8871.  
  8872.  
  8873.  
  8874.  
  8875.  
  8876.  
  8877.  
  8878.  
  8879.  
  8880.  
  8881.  
  8882.  
  8883.  
  8884.  
  8885.  
  8886.  
  8887.  
  8888.  
  8889.  
  8890.  
  8891.  
  8892.  
  8893.  
  8894.                                                                           101
  8895.  
  8896.  
  8897.                                         Dokumentation FranzBasic
  8898.  
  8899.  
  8900.                     4.9 FranzBasic Spezial
  8901.  
  8902.                                                           FILES
  8903.  
  8904.                     Art:   Statement
  8905.  
  8906.                     Form:
  8907.  
  8908.                         Files Dir$, Ext$, File$
  8909.  
  8910.                     Beschreibung:
  8911.  
  8912.                     'FILES' listet alle Dateien in einem
  8913.                     Verzeichnis mit einer bestimmten Namens-
  8914.                     Erweiterung (Extension) auf und bietet
  8915.                     diese auf dem Bildschirm zur Auswahl an.
  8916.                     <Dir$> enthält den Namen des
  8917.                     Verzeichnisses, <Ext$> die
  8918.                     Namenserweiterung ohne Punkt.
  8919.  
  8920.                     <File$> enthält nach der Auswahl den Namen
  8921.                     der vom Benutzer ausgewählten Datei ohne
  8922.                     Namens-Erweiterung.
  8923.  
  8924.                     Der Benutzer wählt aus den angebotenen
  8925.                     Dateien eine durch Bewegen des weissen
  8926.                     Leuchtbalkens und Drücken der Eingabetaste
  8927.                     'CR', durch Anklicken mit der Maus. Durch
  8928.                     Eingabe eines Namens über Tastatur kann ein
  8929.                     neuer Name erzeugt werden.
  8930.  
  8931.  
  8932.  
  8933.  
  8934.  
  8935.  
  8936.  
  8937.  
  8938.  
  8939.                                       4-101
  8940.  
  8941.  
  8942.  
  8943.  
  8944.  
  8945.  
  8946.  
  8947.  
  8948.  
  8949.  
  8950.  
  8951.  
  8952.  
  8953.  
  8954.  
  8955.  
  8956.  
  8957.  
  8958.  
  8959.  
  8960.  
  8961.  
  8962.  
  8963.  
  8964.                                                                           102
  8965.  
  8966.  
  8967.                                         Dokumentation FranzBasic
  8968.  
  8969.                     Bedienung:
  8970.  
  8971.                     Alphanumerische Tasten: Dateiname eingeben
  8972.                     Cursor-Tasten: Bewegen des Leuchtbalkens
  8973.                     Eingabe/Enter/CR: Auswahl des Namens unter
  8974.                               Leuchtbalken
  8975.                     Linke Maustaste: Auswahl des Namens unter
  8976.                                  Maus-Cursor
  8977.  
  8978.                     Beispiel:
  8979.  
  8980.                        Files "\basic", "bas", file$
  8981.  
  8982.                     listet alle Dateien *.bas in Verzeichnis
  8983.                     /basic zur Auswahl auf.
  8984.  
  8985.  
  8986.  
  8987.  
  8988.  
  8989.  
  8990.  
  8991.  
  8992.  
  8993.  
  8994.  
  8995.  
  8996.  
  8997.  
  8998.  
  8999.  
  9000.  
  9001.  
  9002.  
  9003.  
  9004.  
  9005.  
  9006.  
  9007.  
  9008.  
  9009.                                       4-102
  9010.  
  9011.  
  9012.  
  9013.  
  9014.  
  9015.  
  9016.  
  9017.  
  9018.  
  9019.  
  9020.  
  9021.  
  9022.  
  9023.  
  9024.  
  9025.  
  9026.  
  9027.  
  9028.  
  9029.  
  9030.  
  9031.  
  9032.  
  9033.  
  9034.                                                                           103
  9035.  
  9036.  
  9037.                                         Dokumentation FranzBasic
  9038.  
  9039.                                                          DIALOG
  9040.  
  9041.                     Art:   Statement
  9042.  
  9043.                     Form:
  9044.  
  9045.                         Dialog Str$, Var [, x%, y%]
  9046.  
  9047.                        Str$:     String
  9048.                        Var:         Variable
  9049.                        x%, y%:   Integers
  9050.  
  9051.                     Beschreibung:
  9052.  
  9053.                     Ähnlich wie 'INPUT' erfaßt 'DIALOG' einen
  9054.                     Wert für die Variable <Var> mit <Str$> als
  9055.                     Eingabeaufforderung (Prompt). 'DIALOG' ist
  9056.                     jedoch mit einem Linienrahmen umgeben und
  9057.                     bildet ein Fenster auf dem Bildschirm. Der
  9058.                     unter dem Fenster liegende Bildschirmteil
  9059.                     wird gerettet und nach Ende der Funktion
  9060.                     Dialog wieder restauriert.
  9061.  
  9062.                     Die Variable <Var> kann jedem einfachen
  9063.                     Datentyp angehören oder ein Feldelement
  9064.                     sein.
  9065.  
  9066.                     <x%> und <y%> sind Bildschirmkoordinaten
  9067.                     für die linke obere Ecke des Fensters für
  9068.                     'DIALOG'. Fehlen sie, wird x% = 2, y% = 2
  9069.                     angenommen.
  9070.  
  9071.                     Beispiel:
  9072.  
  9073.                        Dialog "Kundennr.:", Kunr$
  9074.  
  9075.  
  9076.  
  9077.  
  9078.  
  9079.                                       4-103
  9080.  
  9081.  
  9082.  
  9083.  
  9084.  
  9085.  
  9086.  
  9087.  
  9088.  
  9089.  
  9090.  
  9091.  
  9092.  
  9093.  
  9094.  
  9095.  
  9096.  
  9097.  
  9098.  
  9099.  
  9100.  
  9101.  
  9102.  
  9103.  
  9104.                                                                           104
  9105.  
  9106.  
  9107.                                         Dokumentation FranzBasic
  9108.  
  9109.                                                            FORM
  9110.  
  9111.                     Art:   Statement
  9112.  
  9113.                     Form:
  9114.  
  9115.                        Form  Satz, Str$ [,x%, y%]
  9116.  
  9117.                        Satz:        Record
  9118.                        Str$:        String
  9119.                        x%, y%:      Integers
  9120.  
  9121.                     Beschreibung:
  9122.  
  9123.                     'FORM' erfasst Daten für die Elemente des
  9124.                     Records <Satz>. Der String <Str$> enthält
  9125.                     die konstanten Teile der Erfassungsmaske
  9126.                     (durch Semikolons getrennt), nämlich eine
  9127.                     Überschrift und die einzelnen Eingabe-
  9128.                     Aufforderungen für die Felder.
  9129.  
  9130.                     'FORM' erzeugt ein Fenster auf dem
  9131.                     Bildschirm. Der unterliegende
  9132.                     Bildschirmteil wird gerettet und nach Ende
  9133.                     der Eingabe-Prozedur wieder auf den
  9134.                     Bildschirm gebracht. <x%> und <y%> sind die
  9135.                     linke obere Ecke des Fenster, bei Fehlen
  9136.                     werden Standardwerte angenommen.
  9137.  
  9138.                     Soll ein Element des Records nicht erfasst
  9139.                     werden, wird die zugehörige Eingabe-
  9140.                     Aufforderung in ein Paar runder Klammern
  9141.                     gesetzt. Das Element wird dann nur
  9142.                     angezeigt, kann aber nicht geändert werden.
  9143.  
  9144.  
  9145.  
  9146.  
  9147.  
  9148.  
  9149.                                       4-104
  9150.  
  9151.  
  9152.  
  9153.  
  9154.  
  9155.  
  9156.  
  9157.  
  9158.  
  9159.  
  9160.  
  9161.  
  9162.  
  9163.  
  9164.  
  9165.  
  9166.  
  9167.  
  9168.  
  9169.  
  9170.  
  9171.  
  9172.  
  9173.  
  9174.                                                                           105
  9175.  
  9176.  
  9177.                                         Dokumentation FranzBasic
  9178.  
  9179.                     Bedienung:
  9180.  
  9181.                     Cursor-Tasten:       Cursor bewegen
  9182.                     Eingabe/Enter/CR:     Ein Feld weiter
  9183.                     ESC:               Ende
  9184.  
  9185.                     Beispiel:
  9186.  
  9187.                        Rectype Asatz
  9188.                           Recvar Nr$ 16
  9189.                           Recvar Bestand% 6
  9190.                           Recvar Bezeichnung$ 30
  9191.                        Endrec
  9192.                        Record Asatz Artikelsatz
  9193.  
  9194.                        Dbopen #1, "Artikel"
  9195.                        Dbget #1, "4711", Artikelsatz
  9196.                        S$ = "Artikelstamm;(Artikelnr.:);
  9197.                        S$ = S$ + "Bestand:;Bezeichnung:"
  9198.                        Form Artikelsatz, S$
  9199.  
  9200.                     Daten für Artikel 4711 können erfasst
  9201.                     werden, die Artikelnummer kann jedoch nicht
  9202.                     verändert werden.
  9203.  
  9204.  
  9205.  
  9206.  
  9207.  
  9208.  
  9209.  
  9210.  
  9211.  
  9212.  
  9213.  
  9214.  
  9215.  
  9216.  
  9217.  
  9218.  
  9219.                                       4-105
  9220.  
  9221.  
  9222.  
  9223.  
  9224.  
  9225.  
  9226.  
  9227.  
  9228.  
  9229.  
  9230.  
  9231.  
  9232.  
  9233.  
  9234.  
  9235.  
  9236.  
  9237.  
  9238.  
  9239.  
  9240.  
  9241.  
  9242.  
  9243.  
  9244.                                                                           106
  9245.  
  9246.  
  9247.                                         Dokumentation FranzBasic
  9248.  
  9249.                                                            MENU
  9250.  
  9251.                     Art:   Statement
  9252.  
  9253.                     Form:
  9254.  
  9255.                         Menu Str$ [,x%, y%]
  9256.  
  9257.                        Str$:        String
  9258.                        x%, y%:      Integers
  9259.  
  9260.                     Beschreibung:
  9261.  
  9262.                     'MENU' erzeugt ein Bildschirm-Menu zur
  9263.                     Auswahl unter Alternativen durch den
  9264.                     Benutzer. Das String-Feld <Str$> enthält im
  9265.                     ersten Element die n Menupunkte (durch
  9266.                     Leerstellen getrennt) und in den nächsten n
  9267.                     Elementen Hilfstexte, welche dem Benutzer
  9268.                     die Bedeutung der einzelnen Menupunkte
  9269.                     erläutert. Das Feld-Element n+2 ist ein
  9270.                     Leerstring "" als Abschluß. Die Hilfstexte
  9271.                     können auch fehlen, dann wird dem zweite
  9272.                     Element von <Str$> ein Leerstring ""
  9273.                     zugewiesen.
  9274.  
  9275.                     Der Benutzer wählt eine der Menupunkte
  9276.                     durch Bewegen des Leuchtbalkens und Drücken
  9277.                     der Eingabetaste 'CR' oder durch Anklicken
  9278.                     mit der Maus. Mit ESC kann er ohne Auswahl
  9279.                     abbrechen.
  9280.  
  9281.                     Die vom Benutzer getroffene Auswahl kann
  9282.                     festgestellt werden durch Aufruf der
  9283.                     Funktion 'LASTKEY%' unmittelbar nach
  9284.                     'MENU'. Ein Funktionswert n steht für den
  9285.                     n-ten Menupunkt, 0 für ESC.
  9286.  
  9287.  
  9288.  
  9289.                                       4-106
  9290.  
  9291.  
  9292.  
  9293.  
  9294.  
  9295.  
  9296.  
  9297.  
  9298.  
  9299.  
  9300.  
  9301.  
  9302.  
  9303.  
  9304.  
  9305.  
  9306.  
  9307.  
  9308.  
  9309.  
  9310.  
  9311.  
  9312.  
  9313.  
  9314.                                                                           107
  9315.  
  9316.  
  9317.                                         Dokumentation FranzBasic
  9318.  
  9319.                     Bedienung:
  9320.  
  9321.                     Cursor-Tasten: Leuchtbalken bewegen
  9322.                     Eingabe/Enter/CR:      Menupunkt      unter
  9323.                     Leuchtbalken auswählen
  9324.                     Linke Maustaste: Menupunkt unter Mauscursor
  9325.                                 auswählen
  9326.                     ESC:      Abbruch ohne Auswahl
  9327.  
  9328.                     Beispiel:
  9329.  
  9330.                        Dim MStr$(5)
  9331.                        MStr$(1)=" Artikel  Kunden  Faktura "
  9332.                        MStr$(2)=" Artikelstamm erfassen "
  9333.                        MStr$(3)=" Kundenstamm erfassen "
  9334.                        MStr$(4)=" Faktura erstellen "
  9335.                        MSTR$(5)=""
  9336.                        Menu MStr$
  9337.                        Auswahl% = lastkey%()
  9338.  
  9339.  
  9340.  
  9341.  
  9342.  
  9343.  
  9344.  
  9345.  
  9346.  
  9347.  
  9348.  
  9349.  
  9350.  
  9351.  
  9352.  
  9353.  
  9354.  
  9355.  
  9356.  
  9357.  
  9358.  
  9359.                                       4-107
  9360.  
  9361.  
  9362.  
  9363.  
  9364.  
  9365.  
  9366.  
  9367.  
  9368.  
  9369.  
  9370.  
  9371.  
  9372.  
  9373.  
  9374.  
  9375.  
  9376.  
  9377.  
  9378.  
  9379.  
  9380.  
  9381.  
  9382.  
  9383.  
  9384.                                                                           108
  9385.  
  9386.  
  9387.                                         Dokumentation FranzBasic
  9388.  
  9389.                                                         MESSAGE
  9390.  
  9391.                     Art:   Statement
  9392.  
  9393.                     Form:
  9394.  
  9395.                         Message Str$
  9396.  
  9397.                        Str$:        String
  9398.  
  9399.                     Beschreibung:
  9400.  
  9401.                     'MESSAGE' bringt eine Message-Box mit einer
  9402.                     Meldung auf den Bildschirm und erwartet vom
  9403.                     Benutzer eine Reaktion durch Auswahl einer
  9404.                     Antwort aus einem kleinen Menu.
  9405.  
  9406.                     <Str$> besteht aus zwei Teilen, getrennt
  9407.                     durch das Zeichen '|'. der erste Teil ist
  9408.                     die Meldung, der zweite Teil das
  9409.                     Antwortmenu. Die Antwort des Benutzers läßt
  9410.                     sich durch die Funktion 'LASTKEY%'
  9411.                     unmittelbar im Anschluss an 'MESSAGE'
  9412.                     feststellen. Ist der Funktionswert n, so
  9413.                     wurde der n-te Auswahlpunkt als Antwort
  9414.                     gewählt.
  9415.  
  9416.                     'MESSAGE' erscheint in einem Fenster. Der
  9417.                     unterliegende Bildschirmbereich wird
  9418.                     gerettet und nach Befehlsende wieder
  9419.                     restauriert.
  9420.  
  9421.  
  9422.  
  9423.  
  9424.  
  9425.  
  9426.  
  9427.  
  9428.  
  9429.                                       4-108
  9430.  
  9431.  
  9432.  
  9433.  
  9434.  
  9435.  
  9436.  
  9437.  
  9438.  
  9439.  
  9440.  
  9441.  
  9442.  
  9443.  
  9444.  
  9445.  
  9446.  
  9447.  
  9448.  
  9449.  
  9450.  
  9451.  
  9452.  
  9453.  
  9454.                                                                           109
  9455.  
  9456.  
  9457.                                         Dokumentation FranzBasic
  9458.  
  9459.                     Bedienung:
  9460.  
  9461.                     Cursor-Tasten: Leuchtbalken bewegen
  9462.                     Eingabe/Enter/CR: Menupunkt unter
  9463.                              Leuchtbalken auswählen
  9464.                     Linke Maustaste: Menupunkt unter Mauscursor
  9465.                               auswählen
  9466.  
  9467.                     Beispiel:
  9468.  
  9469.                        S$="Datei nicht da |  OK     Abbruch "
  9470.                        Message S$
  9471.  
  9472.  
  9473.  
  9474.  
  9475.  
  9476.  
  9477.  
  9478.  
  9479.  
  9480.  
  9481.  
  9482.  
  9483.  
  9484.  
  9485.  
  9486.  
  9487.  
  9488.  
  9489.  
  9490.  
  9491.  
  9492.  
  9493.  
  9494.  
  9495.  
  9496.  
  9497.  
  9498.  
  9499.                                       4-109
  9500.  
  9501.  
  9502.  
  9503.  
  9504.  
  9505.  
  9506.  
  9507.  
  9508.  
  9509.  
  9510.  
  9511.  
  9512.  
  9513.  
  9514.  
  9515.  
  9516.  
  9517.  
  9518.  
  9519.  
  9520.  
  9521.  
  9522.  
  9523.  
  9524.  
  9525.  
  9526.  
  9527.                                         Dokumentation FranzBasic
  9528.  
  9529.                                                           MOUSE
  9530.  
  9531.                     Art:   Statement
  9532.  
  9533.                     Form
  9534.  
  9535.                     1.  Mouse On
  9536.  
  9537.                     2.  Mouse Off
  9538.  
  9539.                     3.  Mouse Knopf%, x%, y%
  9540.  
  9541.                        Knopf%, x%, y%:Integers
  9542.  
  9543.                     Beschreibung:
  9544.  
  9545.                     'MOUSE ON' schaltet den Mauscursor ein,
  9546.                     'MOUSE OFF' schaltet ihn wieder aus. Mit
  9547.                     'MOUSE' können die aktuellen Maus-Daten
  9548.                     festgestellt werden. <Knopf%> gibt den
  9549.                     Zustand der Mausknöpfe an:
  9550.  
  9551.                     0:    kein Knopf gedrückt
  9552.                     1:    linker Knopf gedrückt
  9553.                     2:    rechter Knopf gedrückt
  9554.                     3:    mittlerer Knopf gedrückt
  9555.  
  9556.                     <x%> und <y%> geben die aktuelle
  9557.                     Bildschirm-Position des Mauscursors an.
  9558.  
  9559.                     Beispiel:
  9560.  
  9561.                        Mouse On
  9562.                        Repeat
  9563.                           Mouse Button%, x%, y%
  9564.                        Until Button%
  9565.                        Mouse Off
  9566.  
  9567.  
  9568.  
  9569.                                       4-110
  9570.  
  9571.  
  9572.  
  9573.  
  9574.  
  9575.  
  9576.  
  9577.  
  9578.  
  9579.  
  9580.  
  9581.  
  9582.  
  9583.  
  9584.  
  9585.  
  9586.  
  9587.  
  9588.  
  9589.  
  9590.  
  9591.  
  9592.  
  9593.  
  9594.  
  9595.  
  9596.  
  9597.  
  9598.  
  9599.  
  9600.                     Anhang A
  9601.  
  9602.                     Installation
  9603.  
  9604.                     Stecken sie die Auslieferungsdiskette in
  9605.                     das Diskettenlaufwerk A:. Geben Sie über
  9606.                     die Tastatur ein:
  9607.  
  9608.                        a:install
  9609.  
  9610.                     'Install.bat' erzeugt auf Laufwerk 'C:' ein
  9611.                     Verzeichnis '\Fbasic' und kopiert alle
  9612.                     Dateien der Diskette in dieses Verzeichnis.
  9613.  
  9614.                     Auf der Diskette befindet sich eventuell
  9615.                     eine Datei 'Liesmich'. Sie enthält dann
  9616.                     aktuelle Information, die nicht in diesem
  9617.                     Handbuch enthalten ist.
  9618.  
  9619.  
  9620.  
  9621.  
  9622.  
  9623.  
  9624.  
  9625.  
  9626.  
  9627.  
  9628.  
  9629.  
  9630.  
  9631.  
  9632.  
  9633.  
  9634.  
  9635.  
  9636.  
  9637.  
  9638.  
  9639.                                            
  9640.  
  9641.  
  9642.  
  9643.  
  9644.  
  9645.  
  9646.  
  9647.  
  9648.  
  9649.  
  9650.  
  9651.  
  9652.  
  9653.  
  9654.  
  9655.  
  9656.  
  9657.  
  9658.  
  9659.  
  9660.  
  9661.  
  9662.  
  9663.  
  9664.  
  9665.  
  9666.  
  9667.  
  9668.  
  9669.  
  9670.                     Anhang B
  9671.  
  9672.                     Runtime-Errors
  9673.  
  9674.                     Datei-Meldungen
  9675.  
  9676.                     1  Unter dieser Kennung ist bereits eine
  9677.                        Datei geöffnet
  9678.                     2  Datei nicht geöffnet
  9679.                     3  Schreiben oder Lesen hinter Dateiende
  9680.                     4  Zuviele Dateien
  9681.  
  9682.                     Datenbank-Meldungen
  9683.  
  9684.                     20 Zuviele Datenbanken
  9685.                     21 Systemfehler
  9686.                     22 Datei ist keine .dbf-Datei
  9687.                     23 Satznummer zu groß
  9688.                     24 Datei konnte nicht geschrieben werden
  9689.                     25 Datei ist keine .ndx-Datei
  9690.                     26 Schlüssel zu groß oder null
  9691.                     27 Schlüssel nicht gefunden
  9692.                     28 Schlüssel nicht gefunden,
  9693.                        Nachfolger gelesen
  9694.                     29 Hinter letztem Schlüssel
  9695.                     30 Differenz zwischen .ndx und .dbf-Datei
  9696.                     31 Vor erstem Schlüssel
  9697.  
  9698.