1.3 KiB
1.3 KiB
MODIFIED Requirements
Requirement: Tastatureingabe ohne Zeilenmodell
INKEY$ SHALL ohne zu blockieren die nächste anstehende Taste liefern:
den leeren String bei leerem Puffer, ein Zeichen bei einer
Zeichentaste, eine zwei Zeichen lange Folge mit führendem Nullzeichen bei
einer Sondertaste. INPUT$(n [, #dateinummer]) SHALL genau n Zeichen
lesen und dabei blockieren, ohne sie am Bildschirm zu wiederholen.
INPUT$ SHALL n Unicode-Codepoints liefern. Nicht verbrauchte Zeichen einer Sondertastenfolge und noch nicht gelesene Dateizeichen SHALL für Folgeaufrufe erhalten bleiben. Dateieingabe SHALL UTF-8 vor der Zeichenzählung decodieren.
Scenario: INKEY$ bei leerem Tastaturpuffer
- WHEN
INKEY$ohne anstehende Taste ausgewertet wird - THEN liefert es den leeren String und blockiert nicht
Scenario: Sondertaste als zwei Zeichen
- WHEN F1 gedrückt wurde und
INKEY$ausgewertet wird - THEN hat das Ergebnis die Länge 2 und beginnt mit dem Nullzeichen
Scenario: Sondertastenfolge in zwei Reads
- WHEN F1 ansteht und zweimal INPUT$(1) ausgeführt wird
- THEN liefert der erste Aufruf das Nullzeichen und der zweite den Scancode, jeweils genau ein Zeichen
Scenario: Unicode aus Datei
- WHEN eine UTF-8-Datei mit ä beginnt und INPUT$(1,#1) aufgerufen wird
- THEN liefert der Aufruf ä ohne Ersatzzeichen