Files

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