terça-feira, 19 de maio de 2009

printf - cores e cursor

Precisava eu, mover o cursor pela tela, algo muito fácil com as bibliotecas ncurses ou conio mas depois de dias (muito tempo mesmo) tentando instalas no no netbeans e do codes não obtive exito.
Mas eu continuava precisando mover o cursor pela tela.
Achei em um artigo no viva o linux onde um programador dizia ser possível fazer o movimento apartir do proprio printf () e postava o código.
Infelizmente tambem não funcionou, mas continuei pesquisando e consegui uma maneira de usar o printf() para mover o cursor e tambem mudar a cor do cursor da tela sem adicionar nenhuma bibliotecas especial (a princípio).

Os códigos abaixo foram testado no netbeans 6.1 e também no code:blocks 8.02 ambos copilador cygwin versao desconhecida rodando apartir do MS Windows XP sp2 pc tipo x86

void move(int x, int y) {
printf("\033[%d;%df",y,x);
}

Assim tenho uma funcao que move o cursor para a x,y passadas pela funcao. Se eu fizessem sem funcao poderia passar diretamente pos exemplo para posicao (22,11)

printf("\033[11;22f");
Embora feio mas funcional.
Para cores temos

printf("\033[1;%dm",valor);


No qual as cores estao entre valores de 30 e 50. Sugiro usar um for de 1 ate 50 para testar e cuidado para valores que não alteram as cores pois podem estar alterando algo não perceptível.

Era isto.
Fonte: http://www.magnux.org/doc/howto/en/Bash-Prompt-HOWTO-6.php

Nenhum comentário:

Postar um comentário