Wenn Sie Eingabeaufforderung in Windows ausgeführt wird, können Sie den clear
Befehl geben Sie den Bildschirm zu löschen. Wie machen Sie dasselbe, wenn Sie Swipl Prolog (indem Sie in der Eingabeaufforderung swipl
eingeben) in Windows?Clearing-Bildschirm in Swipl Prolog in Fenstern
Antwort
Auf Unix-Terminals gibt es die Ressource library(tty)
, und diese hat tty_clear/0
, aber Windows-Terminals unterstützen die Terminal-Bibliothek nicht. Sie unterstützen jedoch ANSI Escape Codes.
Escape-Codes sind Zeichenfolgen, beginnend mit dem ESC
(Escape) -Zeichen, ASCII 0x1B = 27
. Die meisten beginnen mit dem Kontrollsequenzeinführer, der das Escape gefolgt von einem linken Bracker ist: ESC [
, bekannt als CSI
.
So können Sie die Code-Sequenz für einen Bildschirm klar, auszustellen, die die ED (Erase Data) Befehl, der die Form:
CSI 2 J -- which expands to: ESC [ 2 J
Von SWI-Prolog kann dies mit Hilfe der format/2
primitiven ausgestellt .
format('~c~s', [0x1b, "[2J"]). % issue CSI 2 J
Der ED-2-Befehl, voller Terminal klar über die Handhabung MSDOS ANSI setzt den Cursor nach oben links, aber das ist nicht unbedingt der Fall an allen Terminals, also am besten mit dem CUP (Cursorposition zu kombinieren) Befehl, der als Reset nach Hause einfach lautet: CSI H
.
format('~c~s~c~s', [0x1b, "[H", 0x1b, "[2J"]). % issue CSI H CSI 2 J
Update: Vereinfachung
Dank @CapelliC für eine alternative und klare Form, mit dem \e
Escape-Code für die Flucht!
Plain klar Bildschirm:
cls :- write('\e[2J').
Oder mit nach Hause zurück:
cls :- write('\e[H\e[2J').
- 1. Deaktivieren XPCE in SWI-Prolog
- 2. Prolog term_expansion nicht funktioniert
- 3. Prolog Typ Definition in Swi-Prolog
- 4. Share History zwischen Fenstern/Fenstern
- 5. Kann catch/3 für tcp_connect in Prolog nicht verwenden
- 6. Projektpfad in Xcode-Fenstern anzeigen
- 7. VIM Compilation in den Fenstern
- 8. Problem mit scons in Fenstern
- 9. Ersatz für in Fenstern Forking
- 10. Matrix-Multiplikation in Prolog
- 11. Breite-zuerst in Prolog
- 12. Baumvorbestellung Traversal in Prolog
- 13. Wie negieren in Prolog
- 14. Benutzereingabe in Prolog
- 15. Symboltabelle in Prolog
- 16. Schwache Regeln in Prolog
- 17. Prolog-Systeme in Javascript
- 18. Antworten zurück in Prolog
- 19. Zufällige Artikel in Prolog
- 20. Heuristische Algorithmen in Prolog
- 21. Aussagenlogik Teilformel in Prolog
- 22. Rätsel in Prolog
- 23. Was bedeutet # = in Prolog?
- 24. Rekursive Multiplikation in Prolog
- 25. Hallo Welt in Prolog
- 26. Geteiltes Wort in Prolog
- 27. Schalter Aussagen in Prolog
- 28. Prolog-Programmierung in Ubuntu
- 29. Grundfehler in Prolog
- 30. Typenkonflikt in Prolog-Code
Nizza zu fangen. Ich habe ANSI-Sequenzen vergessen. Sie können ESC like \ e ausdrücken und so in SWI-Prolog-Konfigurationsdatei die Prozedur speichern: 'cls: - write ('\ e [2J').' Oder 'cls: - write ('\ e [H \ e [ 2J '). ' – CapelliC
@ CapelliC: Nützlich, ich wusste nicht, es unterstützt' \ e', eine viel sauberere Verfeinerung. – Orbling
@CapelliC: '\ e' ist kein ISO und wird von GNU und SICStus abgelehnt. Verwenden Sie stattdessen "\ 33 \". – false