USE (TSB)

Aus C64-Wiki
Wechseln zu: Navigation, Suche
USE (TSB)
Format: USE <const>
USE [#n,] <string>, <zahl> [, zahl...] [;]
Parameter
const: Zahlenkonstante
n: Dateinummer
string: Formatstring (enthält ###.## o.ä.)
zahlen: Zahlen, die formatiert werden sollen
Einordnung
Typ: Anweisung
Kontext: kontrollierte Zahlenausgabe
Aufgabe: dezimalorientierte Ausgabe von Zahlen
Abkürzung: keine
Verwandte Befehle
CENTRE - AT


Dieser Artikel beschreibt das Schlüsselwort USE (TSB).
Das entsprechende Simons'-Basic-Schlüsselwort lautet ebenfalls USE.

1. Syntax (Kommando)[Bearbeiten]

Typ: Kommando
Syntax: USE <const>

TSB hat (anders als Simons' Basic) die Eigenschaft, dass laufwerksbezogene Befehle auch auf andere als nur das Standardlaufwerk 8 zugreifen können. Weil dazu aber nötig ist, dass das gewünschte Laufwerk eingestellt wird, gibt es den Befehl USE <const>. Folgt also auf USE eine Zahlenkonstante, so wird diese als Laufwerksnummer interpretiert. Es sind Werte für <const> von 1 bis 31 zulässig (somit können auch CMD-Laufwerke wie z.B. ein RAMLink angesprochen werden).

Beachten: TSB prüft nicht, ob die Laufwerksangabe plausibel ist. Es kann daher dazu kommen, dass sich der Interpreter beim Versuch, ein nicht vorhandenes Laufwerk anzusprechen, aufhängt.

Hinweis: USE <const> kann auch als Anweisung in einem Programm verwendet werden. Da aber keine Variablen als Parameter zulässig sind, muss man mit IF..THEN..ELSE arbeiten. Alternative: Der Wert der Konstanten wird in der Speicherstelle $be (dez. 190) abgelegt und kann dort beliebig verändert werden.


2. Syntax (Anweisung)[Bearbeiten]

Typ: Anweisung
Syntax: USE [#n,] <string>, <zahl> [, zahl...] [;]

USE dient zum Formatieren von Zahlen, so dass sichergestellt ist, dass Dezimale immer an der gewünschten Position stehen. In BASIC-Dialekten auf PCs erscheint USE als "USING" abhängig von PRINT (PRINT USING <string>, <zahlen>, zu deutsch: "Drucke die <zahlen>, indem du <string> als Vorlage benutzt"). In TSB ist der Befehl eigenständig.

Im Formatstring <string> kann beliebiger Text an beliebiger Stelle stehen, die Zahlen in der Zahlenliste werden auf Platzhaltersymbole ("#", Rautenzeichen, für jede Ausgabeziffer steht ein Platzhaltersymbol) aufgeteilt. Das Trennzeichen zum Nachkommaanteil der Zahlen ist entweder der "." (Dezimalpunkt) oder das "," (Dezimalkomma).

Im Formatstring können Platzhalter für mehrere Zahlen eingebaut werden, so kann man geordnete Listen mit einem einzigen Format erstellen. In der Liste der Zahlen (<zahl> [, zahl...]) werden die einzelnen Zahlen mit einem Komma getrennt. Die Position des Vorzeichens bestimmt man durch Setzen des Vorzeichens an die gewünschte Stelle (vor oder nach dem Platzhalter), ein "+" erzwingt ein Vorzeichen, ein "-" lässt nur bei negativen Zahlen das Vorzeichen erscheinen. Kein Vorzeichen im Formatstring lässt den Interpreter vorzeichenlose Zahlen anzeigen. Ein führender "*" (Stern) füllt alle von einer Zahl nicht benutzten führenden Platzhalterstellen mit Sternen.

Wenn am Ende des USE-Befehls ein ";" (Semikolon) gesetzt wird, hat das den gleichen Effekt wie beim Befehl PRINT (kein Zeilenwechsel nach der Ausgabe).

Hinweise:

  • USE gibt die Zahlen gerundet aus, wobei Rundungen, die drei Ziffern betreffen, nicht durchgeführt werden (23,798 rundet ab zu 23,79 statt auf zu 23,80 - dagegen rundet 23,788 korrekt auf zu 23,79).
  • Zahlen, die nicht in einen Platzhalter passen (vierstellige Zahlen in einem dreistelligen Platzhalter), werden nicht angezeigt. Stattdessen erscheint dort der Platzhalter selbst als Fehlerhinweis.
  • Die Ausgabe von USE kann auch umgelenkt werden auf einen Drucker. Dazu muss man vorher auf übliche Weise den Drucker öffnen (s. OPEN) und hinter USE muss der Ausgabekanal angegeben werden (USE #1, <string>, <zahlen>.

Beachten: Da "." und "," Dezimaltrennzeichen darstellen, können sie im Formatstring nicht einzeln stehen, z.B. als Satzzeichen oder Abkürzungszeichen (führt zu einem ?BAD MODE ERROR). Der "*" muss direkt vor einem Platzhalter stehen und darf sonst nirgends vorkommen, sonst gibt es ebenfalls einen ?BAD MODE ERROR.

Beispiel: 

100 f$="nr ##: Euro -###,##"
110 FOR i=1 TO 10
120 z=(RND(1)*201)-50: vg$=STR$(i)+STR$(z)
130 USE f$, i, z;: PRINT " " vg$
140 NEXT

(gibt 10 nummerierte Geldbeträge aus, negative Beträge erhalten ein vorangestelltes Minus)

Ein komplettes Anwendungsbeispiel beim Simons-Basic-
Befehl MOB SET (Beipiel 2).