Hallo Ms Dos mit Basic ist ewig her doch in meinem Kopf noch frisch und lebendig. Ich habe jetzt viele Jahre Webanwendungen Java und Python Notebooks geschrieben doch heute stand ich vor einem Problem. Ich wollte mir nur mal schnell einige variablen und Daten geordnet anzeigen lassen (Python). Also schnell eine Loop drum Print und gut. Da war es wieder Print mit Position ala Locate Print. Das könnte man jetzt brauchen. Nur wie stellt man das an? nach Langem Googlen hab ich zumindest einigermaßen was gefunden. Aber so richtig ordentlich schaut das nicht aus der Blinkende Cursor spring je nach Print über den Bildschirm... Wie oder womit würde man in der heutigen zeit eine "Consolen" Anwendung schreiben welche wie Früher mit Menüs mit Linien aus Ascii code und villeicht sogar Farbe bestehen. Zielsystem in diesem Fall ein Ubuntu Server ohne Click & bunt.
https://de.wikipedia.org/wiki/Ncurses wobei das nur aufgeschnapptes halbwissen ist. schau mal ob es vielleicht python bindings für ncurses gibt, falls du bei einer scriptsprache bleiben willst.
svenner schrieb: > Wie oder womit würde man in der heutigen zeit eine "Consolen" Anwendung > schreiben welche wie Früher mit Menüs mit Linien aus Ascii code und > villeicht sogar Farbe bestehen. Zielsystem in diesem Fall ein Ubuntu > Server ohne Click & bunt. Hast Du Dir mal ncurses angesehen?
Du koenntest dir mal 'dialog' anschauen.
1 | dialog(1) - Linux man page |
2 | dialog - display dialog boxes from shell scripts |
https://linux.die.net/man/1/dialog Dialog: An Introductory Tutorial https://www.linuxjournal.com/article/2807 Wenn es um das Setzen der Position des Konsolencursors geht, kann man sich mit einem kleinen Hack behelfen:
1 | void goto_xy(int x, int y) |
2 | {
|
3 | printf("\x1B[%i;%if", x, y); |
4 | }
|
https://stackoverflow.com/questions/8683526/gotoxy-implementation-for-linux-using-printf http://www.termsys.demon.co.uk/vtansi.htm In Python:
1 | import sys |
2 | |
3 | def goto_xy(x, y): |
4 | # writes to stdout like print, but |
5 | # without the newline |
6 | sys.stdout.write('\x1B[{};{}f'.format(x, y)) |
:
Bearbeitet durch User
... wie Vorredner schon geschrieben haben ist in der Linuxkonsole ncurses der Klassiker (bspw. ist der Midnight Commander mit ncurses realisiert). Für kleine schnelle Dinge in der Konsole und für den Grundkurs C meiner Auszubildenden habe ich txtools.c / .h geschrieben und die Namesgebung der Funktionen und Deklarationen an Turbo-C / Turbo Pascal angelehnt: gotoxy(x,y) settextcolor(uint8_t col) setbkcolor(uint8_t col) int getch(void) int keypressed(void) uint32_t readkey(void) Wenn du auch in C programmierst ist das für dich vielleicht brauchbar !?!. Eine sehr kleine Demo und den Sourcecode findest du im Anhang. Gruß Ralph
svenner schrieb: > Aber so richtig ordentlich schaut das nicht aus der Blinkende Cursor > spring je nach Print über den Bildschirm... Vor allen PRINT-Befehlen erst mal den Cursor ausschalten kann schon Abhilfe und Performance-Steigerung bringen.
Für Python wäre das dann wohl curses (ohne n davor)...
svenner schrieb: > Print mit Position ala Locate Print Ich mache das immer mit Python und ANSI-Escape-Sequenzen http://ascii-table.com/ansi-escape-sequences.php z.B. print '\33[10;5H Zucker 1.20 Euro' print '\33[11;5H Milch 1.80 Euro' print '\33[12;5H ----------------' print '\33[13;5H Summe 3.00 Euro' Das ist fast identisch wie locate
Als "Ewiggestriger" nutze ich gern Free(Turbo)Pascal mit Free(Turbo)Vision für solche Dinge, alternativ auch Perl mit ncurses. Gruß Jay
Jay W. schrieb: > Free(Turbo)Pascal mit > Free(Turbo)Vision für solche Dinge Hat auch den Vorteil daß das Kompilat praktisch auf jedem Linux der letzten 20 Jahre und der nächsten 20 Jahre läuft und keinerlei libs installiert haben muss, wenn man keine Threads benutzt noch nichtmal die libc.
Viele haben so ihre lingua franca für einfache Fälle. Bei mir ist es Perl. Nicht weil das die beste Sprache ist, sondern weil ich die über die Jahrzehnte in DOS, Unix, OS/2, Linux und Windows verwendete. Entweder gab es Perl schon, oder ich habs eben portiert. Auch schon für GUI via Tk (Unix, Windows).
:
Bearbeitet durch User
Jay W. schrieb: > Als "Ewiggestriger" nutze ich gern Free(Turbo)Pascal mit > Free(Turbo)Vision für solche Dinge, alternativ auch Perl mit ncurses. Irgendwie freut mich dass, dass nicht nur ich noch FreeVision verwende. Hauptsächlicher Nachteil hierbei ist, dass die Konsole im Textmodus (kein x am laufen) nicht mehr mittels ALT-Fx umschaltbar sind. Leider.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.