Interraction avec la console

goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 - 23 oct. 2006 à 11:01
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 - 23 oct. 2006 à 23:59
Salut

J'aimerai savoir comment en C sous linux on peut faire les choses suivantes:

-placer le curseur a une position donnée dans la console (comme gotoxy sous windows)

-changer la couleur des caracters et du fond

-connaitre la taille de la consolle

-detecter la pression d'une touche


En fait j'essay de créer un logiciel unpeu comme vim(j'ai essayé de le decortiquer mais j'ai pas trouvé).

Merci

19 réponses

DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
23 oct. 2006 à 11:06
Pour la pression d'une touche c'est idem que son Windows tant que tu restes en standard (kbhit());

Shell
0
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
23 oct. 2006 à 11:19
merci mais ca ne resoud pas tout le probleme. et puis si quelqu'un connai une methode plus efficace ca m'aiderai vraiment.
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
23 oct. 2006 à 12:41
Je crois que la librairie ncurses sert à ca

_____________________________________
Un éditeur de ressources gratuit pour Windows
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
23 oct. 2006 à 13:14
Salut :

Ceci est lien vers une source écrite en Java utilisant JNI (Programmation C sous Unix)
(tu va trouver un code en C : gotoxy, couleur, ...)
Répondant à toutes vos question :

http://www.javafr.com/codes/ECRIRE-COULEURS-SUR-CONSOLE-JNI_39674.aspx
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
23 oct. 2006 à 14:03
Salut,

au plus simple sous nunux tu dois utiliser les codes escapes pour les interactions avec la console , ils sont définis par le système (voir http://en.wikipedia.org/wiki/ANSI_escape_code) et non strictement aucune dépendance avec ncurses.....

pour faire des petit teste en C/C++ ecris les directement dans un printf/cout ou encore cerr
maintenant si tu veux faire des petits teste dans un terminale(ce qui est plus simple en terme de teste) utilise echo avec l'option '-e' exemple

esc.sh
#!/bin/bash

echo -e "\x1B[${1};${2}m$3"
#restoration de l'affichage pour les textes suivants
echo -e "\x1B[0m"

ensuite tu teste genre :
sh esc.sh 0 33 "petit texte en jaune
sh esc.sh 1 33 "petit texte en jaune gras

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
23 oct. 2006 à 18:41
merci pour toutes les reponces. Mais j'ai toujours pas compris comment connaitre la tail de la console.
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
23 oct. 2006 à 19:03
Salut :

La taille de la console pourquoi faire?
C'est connu 80 caractères (standard/WINDOWS).
Si tu veux prends le soi pour vérifie ça.
0
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
23 oct. 2006 à 19:21
ouai t'as raison mais je me souvien bien d'avoir precisé que je veux
créer un logiciel pour linux. Et si je ne me trempe pas la tail de
console linux peut etre tres variable.

<hr size="2" width="100%" />3Dmania
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
23 oct. 2006 à 19:24
Salut,

sous linux mise à part avec ncurses je ne vois pas trop comment recupe la taille de la console sachant que tu peux etre avec ou sans serveur X.....
un conseil pour ce qui est des gotoxy, couleurs (fonds et textes), clear screen, etc...., et pour la dim de la console utilise ncurses (à condition que ton user soit accros aux manipulation console.... vu que sur les distribs linux il n'y a pas forcement ncurses d'installé.....

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
23 oct. 2006 à 19:27
j'ai zapé un bout dsl je refais :

sous linux mise à part avec ncurses je ne vois pas trop comment recupe
la taille de la console sachant que tu peux etre avec ou sans serveur
X.....
un conseil pour ce qui est des gotoxy, couleurs (fonds et
textes), clear screen, etc.... utilise les codes escapes, et pour la dim de la console utilise
ncurses (à condition que ton user soit accros aux manipulation
console.... vu que sur les distribs linux il n'y a pas forcement
ncurses d'installé.....

(en rouge ce que j'ai zapé )

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
23 oct. 2006 à 19:42
ok pas grave. En fait je le trouve ou ce ncurses?

<hr size="2" width="100%" />Trafic web gratuit!!!
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
23 oct. 2006 à 19:44
Salut,

bah faut l'install..... tu es sous quelle distrib?

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
23 oct. 2006 à 19:59
j'ai ubuntu. Est ce que ncurses marche sous Solaris car a l'ecole d'ingenieurs on a des stations sun partout?

<hr size="2" width="100%" />Trafic web gratuit!!!
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
23 oct. 2006 à 20:06
Salut,

ncurses est une lib unix donc sacahant que solaris est un systeme unix cela répond t'il à ta question?

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
23 oct. 2006 à 20:48
ouai. Mais bon apres quelques reflexions je suis arrivé a la conclusion
que je ne pourrai pas l'installer sur mon compte sun car c'est interdit
par le reglement. Si non est ce que tu sais comment ils l'ont fais dans
vim pour connaitre la taille de la console? Je pence pas qu'ils ont
utilisé les librairies.

<hr size="2" width="100%" />Trafic web gratuit!!!
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
23 oct. 2006 à 21:05
Salut,

methode super simple dl les sources de vim et epluche le truc tu verras tu y trouveras les solutions à ton problème voir plus en te bindant à la lib ctags (pour la colorisation syntaxique et plus )

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
23 oct. 2006 à 21:11
bon ok je vais reessayer :)

<hr size="2" width="100%" />Trafic web gratuit!!!
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
23 oct. 2006 à 23:23
Salut,

normalement si le kernel de la solaris est fait maison il y a ncurses, toute fois pour faire un petit teste vite fais voici un piti script tout simple, et si tout s'affiche correctement c'est good sinon c'est pas bon :

essai.sh:

#!/bin/bash

#result est le fichier contenant la selection
RESULT=result

#ici $HOME c'est le rep selectionné par défaut
dialog --title "Sélection d'un fichier" --ok-label "Valider" --cancel-label "Annuler" --fselect "$HOME/" 8 60 2> $RESULT

utilisation :
sh essai.sh

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
23 oct. 2006 à 23:59
ok merci

<hr size="2" width="100%" />Trafic web gratuit!!!
0
Rejoignez-nous