FreeBASIC Einsteigerhandbuch
Inhaltsverzeichnis

  1. Einleitung
    1. 1 Über das Buch
    2. 2 In diesem Buch verwendete Konventionen
    3. 3 Rechtliches
    4. 4 Weitere Informationen
    5. 5 Danksagung

TEIL 1: Einführung

  1. 1. Eine kurze Einführung in FreeBASIC
    1. 1.1 Was ist eine Programmiersprache?
    2. 1.2 Was ist FreeBASIC?
    3. 1.3 Unterschiede zu QuickBASIC
    4. 1.4 Vor- und Nachteile von FreeBASIC
  2. 2. Installation und Inbetriebnahme
    1. 2.1 Installation
      1. 2.1.1 Installation unter Windows
        1. 2.1.1.1 Komplettpaket
        2. 2.1.1.2 Getrennte Installation
      2. 2.1.2 Installation unter Linux
    2. 2.2 Erstes Programm
    3. 2.3 Problembehebung
      1. 2.3.1 Probleme beim Start
      2. 2.3.2 Probleme beim Compilieren
    4. 2.4 Wie wird aus meinem Quelltext ein Programm?

TEIL 2: Grundkonzepte

  1. 3. Aufbau eines FreeBASIC-Programmes
    1. 3.1 Grundaufbau und Ablauf
    2. 3.2 Kommentare
    3. 3.3 Zeilenfortsetzungszeichen
    4. 3.4 Trennung von Befehlen mit Doppelpunkt
  2. 4. Bildschirmausgabe
    1. 4.1 Der PRINT-Befehl
    2. 4.2 Ausgabe von Variablen
      1. 4.2.1 Deklaration von Variablen
      2. 4.2.2 Wertzuweisung
      3. 4.2.3 Wertvertauschung
      4. 4.2.4 Ausgabe des Variablenwertes
    3. 4.3 Formatierung der Ausgabe
      1. 4.3.1 Direkte Positionierung mit LOCATE
      2. 4.3.2 Positionierung mit TAB und SPC
      3. 4.3.3 Cursor-Position ermitteln: POS und CSRLIN
      4. 4.3.4 Farbige Ausgabe
      5. 4.3.5 Bildschirm löschen mit CLS
    4. 4.4 Fragen zum Kapitel
  3. 5. Tastatureingabe
    1. 5.1 Der INPUT-Befehl
    2. 5.2 Eingabe einzelner Zeichen
      1. 5.2.1 INPUT() als Funktion
      2. 5.2.2 INKEY()
    3. 5.3 Fragen zum Kapitel
  4. 6. Variablen und Konstanten
    1. 6.1 Ganzzahlen
      1. 6.1.1 Verfügbare Ganzzahl-Datentypen
      2. 6.1.2 Alternative Schreibweise: INTEGER
      3. 6.1.3 Rechnen mit Ganzzahlen
      4. 6.1.4 Kurzschreibweisen
    2. 6.2 Gleitkommazahlen
      1. 6.2.1 Darstellungsbereich von Gleitkommazahlen
      2. 6.2.2 Rechengenauigkeit bei Gleitkommazahlen
    3. 6.3 Zeichenketten
      1. 6.3.1 Arten von Zeichenketten
      2. 6.3.2 Aneinanderhängen zweier Zeichenketten
    4. 6.4 Wahrheitswerte
    5. 6.5 Konstanten
    6. 6.6 Nummerierungen (Enumerations)
    7. 6.7 Weitere Speicherstrukturen
    8. 6.8 Fragen zum Kapitel
  5. 7. Benutzerdefinierte Datentypen (UDTs)
    1. 7.1 Deklaration
    2. 7.2 Mitgliederzugriff mit WITH
    3. 7.3 Speicherverwaltung
    4. 7.4 Bitfelder
    5. 7.5 UNIONs
    6. 7.6 Fragen zum Kapitel
  6. 8. Datenfelder (Arrays)
    1. 8.1 Deklaration und Zugriff
    2. 8.2 Mehrdimensionale Arrays
    3. 8.3 Dynamische Arrays
      1. 8.3.1 Deklaration und Redimensionierung
      2. 8.3.2 Werte-Erhalt beim Redimensionieren
    4. 8.4 Weitere Befehle
      1. 8.4.1 Grenzen ermitteln: LBOUND() und UBOUND()
      2. 8.4.2 Nur die Dimensionenzahl festlegen: ANY
      3. 8.4.3 Implizite Grenzen
      4. 8.4.4 Löschen mit ERASE
    5. 8.5 Fragen zum Kapitel
  7. 9. Pointer (Zeiger)
    1. 9.1 Speicheradresse ermitteln
    2. 9.2 Pointer deklarieren
    3. 9.3 Speicherverwaltung bei Arrays
    4. 9.4 Fragen zum Kapitel
  8. 10. Bedingungen
    1. 10.1 Einfache Auswahl: IF ... THEN
      1. 10.1.1 Einzeilige Bedingungen
      2. 10.1.2 Mehrzeilige Bedingungen (IF-Block)
      3. 10.1.3 Alternativauswahl
    2. 10.2 Bedingungsstrukturen
      1. 10.2.1 Vergleiche
      2. 10.2.2 Logische Operatoren
      3. 10.2.3 Das Binärsystem
      4. 10.2.4 AND und OR als Bit-Operatoren
      5. 10.2.5 ANDALSO und ORELSE
      6. 10.2.6 Weitere Bit-Operatoren: XOR, EQV, IMP und NOT
    3. 10.3 Mehrfachauswahl: SELECT CASE
      1. 10.3.1 Grundaufbau
      2. 10.3.2 Erweiterte Möglichkeiten
      3. 10.3.3 SELECT CASE AS CONST
    4. 10.4 Bedingungsfunktion: IIF()
    5. 10.5 Welche Möglichkeit ist die beste?
    6. 10.6 Fragen zum Kapitel
  9. 11. Schleifen und Kontrollanweisungen
    1. 11.1 Sprunganweisungen
    2. 11.2 DO ... LOOP
    3. 11.3 WHILE ... WEND
    4. 11.4 FOR ... NEXT
      1. 11.4.1 Einfache FOR-Schleife
      2. 11.4.2 FOR-Schleife mit angegebener Schrittweite
      3. 11.4.3 FOR i AS datentyp
      4. 11.4.4 Übersprungene Schleifen
      5. 11.4.5 Fallstricke
        1. 11.4.5.1 Gleitkomma-Schrittweite
        2. 11.4.5.2 Überschreitung des Wertebereichs
    5. 11.5 Kontrollanweisungen
      1. 11.5.1 Fortfahren mit CONTINUE
      2. 11.5.2 Vorzeitiges Verlassen mit EXIT
      3. 11.5.3 Kontrollstrukturen in verschachtelten Blöcken
    6. 11.6 Systemauslastung in Dauerschleifen
    7. 11.7 Fragen zum Kapitel
  10. 12. Prozeduren und Funktionen
    1. 12.1 Einfache Prozeduren
    2. 12.2 Verwaltung von Variablen
      1. 12.2.1 Parameterübergabe
      2. 12.2.2 Globale Variablen
      3. 12.2.3 Statische Variablen
    3. 12.3 Unterprogramme bekannt machen
      1. 12.3.1 Die Deklarationszeile
      2. 12.3.2 Optionale Parameter
      3. 12.3.3 OVERLOAD
    4. 12.4 Funktionen
    5. 12.5 Weitere Eigenschaften der Parameter
      1. 12.5.1 Übergabe von Arrays
      2. 12.5.2 BYREF und BYVAL
      3. 12.5.3 Parameterübergabe AS CONST
      4. 12.5.4 Aufrufkonvention für die Parameter
      5. 12.5.5 Variable Parameterlisten
        1. 12.5.5.1 Abfrage variabler Parameterlisten
        2. 12.5.5.2 Kopie erstellen
        3. 12.5.5.3 Frühere Methoden
    6. 12.6 Fragen zum Kapitel

TEIL 3: Datenverarbeitung

  1. 13. Datentypen umwandeln
    1. 13.1 Allgemeine Umwandlung: CAST()
    2. 13.2 Umwandlung in einen String
    3. 13.3 Implizite Umwandlung
    4. 13.4 ASCII-Code
      1. 13.4.1 Ursprung und Bedeutung des ASCII-Codes
      2. 13.4.2 ASC() und CHR()
      3. 13.4.3 Binäre Kopie erstellen
    5. 13.5 Fragen zum Kapitel
  2. 14. Verarbeitung von Zahlen
    1. 14.1 Mathematische Funktionen
      1. 14.1.1 Quadratwurzel, Absolutbetrag und Vorzeichen
      2. 14.1.2 Winkelfunktionen
      3. 14.1.3 Exponentialfunktion und Logarithmus
      4. 14.1.4 Rundung
      5. 14.1.5 Modulo-Berechnung
      6. 14.1.6 Zufallszahlen
    2. 14.2 Zahlensysteme
      1. 14.2.1 Darstellung in Nicht-Dezimalsystemen
      2. 14.2.2 BIN(), OCT() und HEX()
    3. 14.3 Bit-Manipulationen
      1. 14.3.1 Manipulation über Bitoperatoren
      2. 14.3.2 Einzelne Bit lesen und setzen
      3. 14.3.3 Vergleich
      4. 14.3.4 LOBYTE() und seine Freunde
      5. 14.3.5 Bit-Verschiebung
    4. 14.4 Fragen zum Kapitel
  3. 15. Stringmanipulation
    1. 15.1 Speicherverwaltung
      1. 15.1.1 Verwaltung eines ZSTRING
      2. 15.1.2 Verwaltung eines WSTRING
      3. 15.1.3 Verwaltung eines STRING
    2. 15.2 Stringfunktionen
      1. 15.2.1 LEN(): Länge eines Strings ermitteln
      2. 15.2.2 Die Funktionen SPACE() und STRING()
      3. 15.2.3 LEFT(), RIGHT() und MID()
      4. 15.2.4 Zeichenketten modifizieren
        1. 15.2.4.1 MID als Anweisung
        2. 15.2.4.2 LSET und RSET
      5. 15.2.5 Führende/angehängte Zeichen entfernen: LTRIM(), RTRIM() und TRIM()
      6. 15.2.6 Umwandlung in Groß- bzw. Kleinbuchstaben: UCASE() und LCASE()
      7. 15.2.7 Teilstring suchen: INSTR() und INSTRREV()
    3. 15.3 Umlaute und andere Sonderbuchstaben
      1. 15.3.1 Problemstellung: Darstellung von Sonderzeichen
      2. 15.3.2 Erster Lösungsversuch: Speicherformat anpassen
      3. 15.3.3 Zweiter Lösungsversuch: Sonderzeichen als Konstanten
    4. 15.4 Escape-Sequenzen
    5. 15.5 Fragen zum Kapitel
  4. 16. Datei-Zugriff
    1. 16.1 Datei öffnen und schließen
      1. 16.1.1 Dateinummer festlegen
      2. 16.1.2 Der Dateimodus
        1. 16.1.2.1 Sequentieller Zugriff
        2. 16.1.2.2 Random-Access und BINARY
        3. 16.1.2.3 Vergleich der Dateimodi
      3. 16.1.3 Zugriffsart beschränken
      4. 16.1.4 Datei für andere Programme sperren
      5. 16.1.5 Text-Encoding
      6. 16.1.6 Datei(en) schließen
    2. 16.2 Lesen und Schreiben sequentieller Daten
      1. 16.2.1 PRINT# und WRITE#
      2. 16.2.2 INPUT#, LINE INPUT#
      3. 16.2.3 INPUT() und WINPUT() für Dateien
    3. 16.3 Zugriff auf binäre Daten
      1. 16.3.1 Binäre Daten speichern
      2. 16.3.2 Binäre Daten einlesen
      3. 16.3.3 Binäre Speicherung von Strings variabler Länge
      4. 16.3.4 Position des Dateizeigers
    4. 16.4 Dateiende ermitteln
      1. 16.4.1 End Of File (EOF)
      2. 16.4.2 Length Of File (LOF)
    5. 16.5 Datei löschen
    6. 16.6 Standard-Datenströme
      1. 16.6.1 Eine kurze Einführung
      2. 16.6.2 Öffnen und Schließen eines Standard-Datenstroms
      3. 16.6.3 OPEN PIPE
    7. 16.7 Hardware-Zugriffe: OPEN COM und OPEN LPT
    8. 16.8 Fragen zum Kapitel
  5. 17. Betriebssystem-Anweisungen
    1. 17.1 Ordnerfunktionen
      1. 17.1.1 Kurze Einführung in das Ordnersystem
        1. 17.1.1.1 Absolute Pfadangaben
        2. 17.1.1.2 Relative Pfadangaben
      2. 17.1.2 Arbeitsverzeichnis anzeigen und wechseln: CURDIR() und CHDIR()
      3. 17.1.3 Programmpfad anzeigen: EXEPATH()
      4. 17.1.4 Ordner anlegen und löschen: MKDIR() und RMDIR()
    2. 17.2 Dateifunktionen
      1. 17.2.1 Dateien umbenennen und verschieben: NAME()
      2. 17.2.2 Dateien kopieren: FILECOPY()
      3. 17.2.3 Dateiinformationen abrufen: FILEATTR(), FILELEN() und FILEDATETIME()
      4. 17.2.4 Auf Existenz prüfen: FILEEXISTS()
      5. 17.2.5 Dateien suchen: DIR()
    3. 17.3 Externe Programme starten
      1. 17.3.1 CHAIN(), EXEC() und RUN()
      2. 17.3.2 SHELL()
    4. 17.4 Kommandozeilenparameter auswerten
    5. 17.5 Umgebungsvariablen abfragen und setzen
    6. 17.6 Fragen zum Kapitel
  6. 18. Datum und Zeit
    1. 18.1 Zeitmessung
      1. 18.1.1 SLEEP
      2. 18.1.2 TIMER()
    2. 18.2 Abruf und Änderung der Systemzeit
    3. 18.3 Serial Numbers
      1. 18.3.1 Aktuelles Datum mit NOW() und FORMAT
      2. 18.3.2 Setzen einer _Serial Number_
      3. 18.3.3 Teilinformationen einer _Serial Number_
      4. 18.3.4 Namen des Wochentage und Monate
      5. 18.3.5 Rechnen mit Datum und Zeit
    4. 18.4 Fragen zum Kapitel

ANHANG

  1. Anhang A: Antworten zu den Fragen
  2. Anhang B: Compiler-Optionen
    1. B.1 Grundlegende Compileroptionen
    2. B.2 Dialekt wählen
    3. B.3 Fehlerbehandlung einstellen
    4. B.4 Unterdrüchung des Konsolenfensters
    5. B.5 Weitere Optionsschalter
    6. B.5.1 Erzeugung von Bibliotheken (Libraries) mit privaten/öffentlichen Prozeduren
    7. B.5.2 Behandlung von Programmdateien (*.bas und *.bi)
    8. B.5.3 Bedingtes Compilieren und Präprozessor
    9. B.5.4 Fehlerbehandlung
    10. B.5.5 Programmerstellung
    11. B.5.6 Informationen
  3. Anhang C: ASCII-Zeichentabelle
  4. Anhang D: MULTIKEY-Scancodes
  5. Anhang E: Konstanten und Funktionen der _vbcompat.bi_
    1. E.1 Datum und Zeit
    2. E.1.1 Verfügbare Funktionen
    3. E.1.2 Definierte Konstanten
    4. E.2 Formatierungsmöglichkeiten durch FORMAT()
    5. E.3 Konstanten für die Attribute von DIR
    6. E.4 Dateifunktionen
    7. E.4.1 Verfügbare Funktionen
    8. E.4.2 Definierte Konstanten
  6. Anhang F: Vorrangregeln (Hierarchie der Operatoren)
  7. Anhang G: FreeBASIC-Schlüsselwörter
    1. G.1 Schlüsselwörter
    2. G.2 Metabefehle
    3. G.3 Vordefinierte Symbole

  8. Index
  9. Liste der Quelltexte