BASIC-Tutorial
Tipps zur Ein- und Ausgabe, Textfarben
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.
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 |