USE

Aus C64-Wiki
Wechseln zu: Navigation, Suche
USE
Format: USE <str1>, <str2>
Parameter
str1: Formatstring (enthält ###.## o.ä.)
str2: Zahlenstring
Einordnung
Typ: Anweisung
Kontext: kontrollierte Zahlenausgabe
Aufgabe: dezimalorientierte Ausgabe von Zahlen
Abkürzung: keine
Verwandte Befehle
CENTRE - AT


Dieser Artikel beschreibt das Simons'-Basic-Schlüsselwort USE.

Typ: Anweisung
Syntax: USE <str1>, <str2>

USE dient zum Formatieren von Zahlen, so dass sichergestellt ist, dass Dezimalpunkte immer an der gewünschten Position stehen. In BASIC-Dialekten auf PCs erscheint USE als "USING" abhängig von PRINT (PRINT USING <string>, <zahlenliste>, zu deutsch: "Drucke die <zahlenliste>, indem du <string> als Vorlage benutzt"). In Simons' Basic ist der Befehl eigenständig und die Zahlenliste muss (leider) vor der Benutzung in eine Zeichenkette umgewandelt werden.

In <str1> (der Formatvorlage) kann beliebiger Text an beliebiger Stelle stehen, die Ziffern der Zahl in <str2> werden jedenfalls auf Platzhaltersymbole ("#", Rautenzeichen, für jede Ausgabeziffer steht ein Platzhaltersymbol) aufgeteilt. Das Trennzeichen zum Nachkommaanteil der Zahl <str2> ist der "." (Dezimalpunkt). Es spielt dabei keine Rolle, ob die Platzhalter zusammenhängend geschrieben werden. Sogar weitere Zeichen dürfen in der Platzhalterfolge enthalten sein, z.B. das Hochkomma (brauchbar, um Tausender zu trennen).

Beachten: Zahlen, die nicht vollständig in die vorgesehene Anzahl der Platzhalter passen (nur drei "#", aber die Zahl ist vierstellig) werden ohne Fehlerhinweis einfach falsch wiedergegeben (die höchstwertigen Stellen fehlen!) Außerdem rundet USE Dezimalstellen, die herausfallen, weil etwa auf zwei Nachkommastellen begrenzt wird, nicht (weder kaufmännisch noch sonst irgendwie)! Ein dritter Fehler im USE-Befehl führt dazu, dass man nur eine Zahl formatieren kann. Diese drei Mängel machen den Befehl völlig ungeeignet für seriöse Anwendungen.

Hinweis: Nach der Ausgabe führt USE keinen Zeilenwechsel aus, so dass auf jeden Fall ein PRINT folgen sollte.

Beispiel: 

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

(soll 10 nummerierte Geldbeträge ausgeben, die Ausgabe erscheint jedoch komplett fehlerhaft, weil
der Dezimalpunkt zweimal vorkommt und USE dadurch völlig durcheinander gerät)

Dieser Befehl wurde in TSB sowohl um weitere Funktionen ergänzt als auch so überarbeitet, dass er nunmehr voll funktionsfähig ist, siehe USE (TSB).