Sziasztok!
Felvetődött egy olyan problémám, hogy szükségem lenne egy saját terminál programra, ami USB alól kezelget majdan különböző port-port-protokolokat. A segítséget a "megjelenítés"-hez szeretném kérni. Szeretnék úgy kiírni a terminálra, hogy be tudjam mindig állítani hogy hányadik sor és hányadik oszlopra tudjam kiírni az adott karakteremet.Ha jól tudom, ezt egy egyszerű printf() fgv-nyel nem lehetséges.
Előre is köszi
SYN + ACK
- 2403 megtekintés
Hozzászólások
man ncurses
- A hozzászóláshoz be kell jelentkezni
Lehet curses nélkül is sima printf-t használva escape szekvenciákkal, ha elég az, ha a saját gépen a kedvenc terminálban jól fut.
- A hozzászóláshoz be kell jelentkezni
+1, ha csak kimenet kell. lasd pl itt.
- A hozzászóláshoz be kell jelentkezni
printf("\033[%d;%dH", row, column); /* (1,1) == top left */
fflush(stdout);
- A hozzászóláshoz be kell jelentkezni
azert egy curses vagy termcap ennel nem sokkal bonyolultabb
--
NetBSD - Simplicity is prerequisite for reliability
- A hozzászóláshoz be kell jelentkezni
curses +1 és akkor komplett függvénycsomagod van terminálhoz.
- A hozzászóláshoz be kell jelentkezni
Es meg hordozhato is.
De ha totalisan nem vagy hajlando megtanulni a curses programozasat (noha tenyleg nagyon egyszeru), akkor kezdd a kodot egy
system("tput clear")
paranccsal, majd amikor pozicionalni akarsz, akkor
system( "tput cm OSZLOP SOR")
formaban rakod a kurzort ahova akarod :-)
Megjegyzes 1: nem tomi66-nak szol
Megjegyzes 2: baromi ronda megoldas, en kivagnam a kodot, ha en lennek a megrendelo :-)
Megjegyzes 3: man terminfo termcap
- A hozzászóláshoz be kell jelentkezni
Eseteleg 'tput cup 10 10' 'tput cm ...' helyett.
- A hozzászóláshoz be kell jelentkezni
> Es meg hordozhato is.
Khm. Amikor nekem kellett pár éve egy becsületesen crossplatform cuccot írnom, végül arra jutottam, hogy írtam egy kicsi és egyszerű curses-replacementet.
Igaz, hogy akkoriban még AIX4, SunOS 5.2, és FreeBSD 2.2.8 voltak a játékosok, azóta lehet, hogy javult a helyzet...
- A hozzászóláshoz be kell jelentkezni
pár éve
...
AIX4, SunOS 5.2, és FreeBSD 2.2.8
Volt az a "pár" vagy 10-15 is, de ennyi év után ki számolja már, ugye... :P
- A hozzászóláshoz be kell jelentkezni
> Volt az a "pár" vagy 10-15 is, de ennyi év után ki számolja már, ugye... :P
igen, rémlik, hogy akkor még nem csókolomot köszöntek a 18 éves diáklányok... :(
- A hozzászóláshoz be kell jelentkezni
Minden egyes kurzorpozicionáláshoz külső processz indítása (fork+exec+waitpid)? Lesz ám ennek teljesítménye! :)
- A hozzászóláshoz be kell jelentkezni
Lásd b) pont a hozzászólásban.
Mellesleg én már láttam shell-scriptet, amelyik /bin/echo-val intézte a kiíratást (és dd-vel a karakterenkéni beolvasást), nem volt látványosan lassú :-)
- A hozzászóláshoz be kell jelentkezni
valld be, hogy csak menozni akartal :)
--
NetBSD - Simplicity is prerequisite for reliability
- A hozzászóláshoz be kell jelentkezni
moravas
hello!
játszottam kicsit az ncurses.h álltal kinált fgv-kkel, de faladtam amikor a példaprogram az X nélküli terminálban futott(ctrl+alt+F2) de a hagyományos X álltal kezelt terminálban nem.
A példaprogi:
#include
int main () {
initscr (); /* a curses mod inditasa */
printw ("Hello Vilag !!!"); /* kiirjuk a megfelelo szoveget */
refresh (); /* megjelenitjuk a szoveget a "valodi" kepernyon */
endwin (); /* Kilepes a curses modbol*/
return 0;
}
Ha esetleg valakinek van valami ötlete hogy miért nem megy, akkor azt megköszönném.
Üdv
- A hozzászóláshoz be kell jelentkezni
Tettem 5 másodperc késleltetést az endwin() elé. Így szépen működik GNOME terminálban.
Fuszenecker Róbert
- A hozzászóláshoz be kell jelentkezni
moravas
Köszönöm!
Tóth Norbert
- A hozzászóláshoz be kell jelentkezni
Azt meg tudod szuntetni, hogy a nickeddel kezdodjon minden kommented? Halas lennek erte. Meg a szignod ele egy entert, de ez mar nagyon extra...
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Te az a Tóth Norbi vagy, akit ismerek? :-)
Fuszenecker Róbert
- A hozzászóláshoz be kell jelentkezni
Miert, szerinted o ismer teged?
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Mint kiderült, igen :-)
Fuszenecker Róbert
- A hozzászóláshoz be kell jelentkezni
Kukkold meg a minicom forrasat.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
screen-ét is...
- A hozzászóláshoz be kell jelentkezni
Mivel o elsosorban soros portot es ncursest akar osszehozni, a minicom forrasa tobb segitseget tud nyujtani neki. Persze szigoruan SZVSZ.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
slang libraryt használtam ilyesmire régebben.
SLsmg_gotorc és társai valók erre, de még sokkal látványosabb dolgokat is könnyű vele összehozni. Például Midnight Commander felülete is slang.
- A hozzászóláshoz be kell jelentkezni
> Például Midnight Commander felülete is slang.
Vagy ncurses, fordításkor dől el, így distribúció és csomagfüggő.
- A hozzászóláshoz be kell jelentkezni
Igen, csak slang unicode.
- A hozzászóláshoz be kell jelentkezni
Csak most kapcsolódtam be, sok mindent leírtatok, de még pár dolog:
- Megjelenítéshez én ezt nézegettem annak idején:
man console_codes
- Különböztessük meg a parancssoros és az interaktív programokat; utóbbi esetben érdemes a terminál kanonikus módját kikapcsolni, hogy ne buffereljen enterig. termios.h, tcsetattr(), ICANON. Kilépéskor vissza. Ezt elvégzi az ncurses is, ha használod.
- Funkcióbillentyűk, kurzornyilak, stb. nagyon máshogy jönnek xterm-ről, rxvt-ről, Linux konzolról - ezt vagy kezelni kell, vagy ncurses-t használni inkább. xterm miatt még az smkx/rmkx módot is kapcsolgatnom kellett, valami billentyű nem működött enélkül...
- A hozzászóláshoz be kell jelentkezni
A conio.h (a bin86 csomag része) mennyire használható?
Egyáltalán van értelme használni?
- A hozzászóláshoz be kell jelentkezni
Ha DOS alatt akarod a kódot futtatni, akkor mindenképpen.
Egyébként nem ér semmit.
- A hozzászóláshoz be kell jelentkezni
"Egyáltalán van értelme használni?"
Nincs.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Linux alatt semmiképpen nem érdemes coniot használni, ez igaz.
De wines gépen karakteres felületen MinGW mellett, ott igenis van értelme. Persze inkább a conio2:
Ezt persze alapból nem tartalmazza a MinGW, de itt egy kis segítség, ha valaki MinGW-re vetemedik és conio2-öt szeretne:
- A hozzászóláshoz be kell jelentkezni
De nekem tokeletes a stdio.h is.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni