BASIC-Tutorial (Vorwort, Installation, Kapitel 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)

Tipps zur Ein- und Ausgabe, Textfarben

In diesem Kapitel:

4.1. Tipps zur Ein- und Ausgabe

Wahrscheinlich haben Sie in den letzten Kapiteln bereits einiges gelernt, doch die Möglichkeiten der Ein- und Ausgabe wurden noch nicht ausreichend beschrieben. Alleine wenn man bedenkt, dass bei der Ausgabe der Wert einer Variablen mehrere Zeichen neben dem zuvor ausgegebenen Text entfernt angezeigt wird, wünscht man sich schnell mehr Möglichkeiten, auch was die Formatierung der Texte angeht.

Wenn Sie eines der beiden Euro-Umrechnungs-Beispiele ausprobiert haben, werden Sie festgestellt haben, dass die Ausgabe optisch eine ziemliche Katastrophe war. Da wurde der auszugebende Wert ziemlich weit rechts neben dem Text angezeigt. Das Gleiche in der nächsten Zeile. Um zu verhindern, dass QBasic den Wert nach rechts einrückt, kann man sich mit einem kleinen Trick Abhilfe schaffen. Man schreibt einfach anstelle des Beistriches - wenn es um die Ausgabe geht - ein Semikolon (Strichpunkt ;). Das nächste Beispiel demonstriert das. Es zeigt den österreichischen Euroumrechner (ATS-Euro) in verbesserter Form.

' *** Umrechner von Schilling -> Euro (verbessert) ***
CLS
PRINT "Umrechnung ATS-Euro"
INPUT "Eingabe ATS: ", ats
ergebnis# = ats / 13.7603       ' ** Kurs: 1 Euro = 13.7603 ATS **
PRINT ats; " Schilling sind "; ergebnis#; " Euro." 

Was tun, wenn man selbst einen Zeilenumbruch erzeugen will? Eine Lösung besteht darin, einfach in eine Zeile folgendes zu schreiben:

PRINT ""

Um an dieser Stelle nochmal zusammenzufassen: Um mehrere Teilausgaben zu tätigen, kann man die einzelnen Teile entweder durch einen Beistrich (,) oder durch ein Semikolon (;) trennen. Verwendet man Beistriche, werden die Ausgaben an fixen Positionen (quasi Tabulator-Sprünge bzw. mit Leerzeichen aufgefüllt) angezeigt. Probieren Sie das nachfolgende Beispiel aus, das zeigt, was passiert, wenn mehrere Beistriche die Ausgaben trennen. Verwenden Sie stattdessen Semikola (Strichpunkte ;), werden die Ausgaben nicht durch Leerzeichen getrennt, folgen also unmittelbar aufeinander.

CLS
	' Informationen in tabellarischer Form darstellen:
PRINT "Spalte 1", "Spalte 2", "Spalte 3", "Spalte 4"
PRINT , , , "Spalte 4"
PRINT , , "Spalte 3"
PRINT "Diesem"; "Text"; "fehlt"; "der"; "Abstand"
        ' Hier ist dem Autor nichts Besseres eingefallen ;-)
PRINT "Hier wird ein Zeilenumbruch";    ' Semikolon verhindert Zeilenumbruch
PRINT " verhindert!"    ' Beachte: Leerzeichen am Anfang des Strings

Das Beispiel ist - denke ich - selbsterklärend. Es zeigt aber zugleich etwas anderes. Oben habe ich gezeigt, wie Sie Zeilenumbrüche bewusst erzeugen können. Mit einem Semikolon (;) am Ende der Ausgabe können Sie die automatischen Umbrüche, die PRINT erzeugt, verhindern.

4.2. Textfarben

Nun bringen wir etwas Farbe ins Spiel. Es geht darum, farbige Texte zu schreiben. Dabei soll sowohl die Textfarbe als auch die Hintergrundfarbe geändert werden.

Um dies zu erreichen, benötigen wir einen neuen Befehl: COLOR. COLOR wird folgendermaßen verwendet:

COLOR Textfarbe, Hintergrundfarbe

Anstelle von Textfarbe bzw. Hintergrundfarbe müssen Farbwerte geschrieben werden. Diese Werte gehen von 0 bis 31. Die Werte 0 bis 15 stellen die 16 Grundfarben dar, die weiteren Farbwerte charakterisieren blinkende Farben. Das heißt, es ist in Basic auch mit einfachen Mitteln möglich, Texte blinken zu lassen! Blinken kann sowohl die Text- als auch die Hintergrundfarbe!

Bevor ich die einzelnen Farbwerte aufzähle, möchte ich noch ein einfaches Beispiel bringen. Es soll lediglich die Textfarbe zu Rot geändert werden.

CLS
COLOR 12 	' Farbwert 12 = Hellrot
PRINT "Dieser Text wird in roter Schrift ausgegeben..."

Die einzig relevante Zeile für die Farbumstellung ist die zweite. Interessant ist, dass kein Farbwert für die Hintergrundfarbe angegeben wurde. Das ist möglich, denn die Angabe für die Hintergrundfarbe ist nicht unbedingt erforderlich. Es kann natürlich auch nur die Hintergrundfarbe geändert werden, dann bleibt die Einstellung der Textfarbe wie bisher. Daher bleibt auch die Hintergrundfarbe unverändert, wenn nur die Textfarbe geändert wird. Nur die Hintergrundfarbe ändern:

COLOR , Hintergrundfarbe

Es wurde einfach der Wert für die Textfarbe weggelassen, jedoch ein Beistrich stattdessen stehen gelassen.

Nicht-blinkende Farben
0 Schwarz
1 Dunkelblau
2 Dunkelgrün
3 Dunkelzyan
4 Dunkelrot
5 Dunkelviolett
6 Braun
7 Weiß
8 Grau
9 Hellblau
10 Hellgrün
11 Hellzyan
12 Hellrot
13 Hellviolett
14 Gelb
15 Leuchtendes Weiß
Blinkende Farben
16 Blinkendes Schwarz
17 Blinkendes Dunkelblau
18 Blinkendes Dunkelgrün
19 Blinkendes Dunkelzyan
20 Blinkendes Dunkelrot
21 Blinkendes Dunkelviolett
22 Blinkendes Braun
23 Blinkendes Weiß
24 Blinkendes Grau
25 Blinkendes Hellblau
26 Blinkendes Hellgrün
27 Blinkendes Hellzyan
28 Blinkendes Hellrot
29 Blinkendes Hellviolett
30 Blinkendes Gelb
31 Blinkendes, leuchtendes Weiß

Abschließend dazu noch ein Beispiel:

CLS
COLOR 4,7
PRINT "Dunkelrote Schrift, weisser Hintergrund"
PRINT ""
COLOR 23,0
PRINT "Schwarzer Hintergrund, weisse blinkende Schrift"

Es kann sein, dass dieses Beispiel in der Windows-Eingabeaufforderung nicht korrekt funktioniert. Sollten Sie noch ein Diskettenlaufwerk und eine Windows-Startdiskette besitzen, können Sie auch in den "reinen" DOS-Modus booten, um es zu testen (dann funktioniert's). :-)
Unter Linux (Testsystem: Ubuntu 7.10) läuft es mit DOSBox emuliert übrigens problemlos.

Vorheriges Kapitel Nächstes Kapitel