• Sábado 14 de Diciembre de 2024, 23:38

Autor Tema:  Metodos Para Limpiar Pantalla  (Leído 2477 veces)

wilbur-naike

  • Miembro activo
  • **
  • Mensajes: 33
  • Nacionalidad: pe
    • Ver Perfil
Metodos Para Limpiar Pantalla
« en: Viernes 16 de Marzo de 2007, 06:14 »
0
Hola a todos.

Bueno estoy observando los metodos para limpiar la pantalla y de seguro tambien conocen.

Veamos:
Código: Text
  1. system("cls"); //For DOS
  2.  
Código: Text
  1. system("clear"); //For Linux
  2.  

y por ultimo:
Código: Text
  1. char a[5]={27,'[','j',0} /* Para ambos (en DOS cargando antes ansi.sys) */
  2. printf("%s",a);
  3.  

La duda es en este ultimo. Como cargar el ansi.sys?
Ah y que siginifica esos caracteres como j,%s en fin no entiendo ese codigo.

S4lud0s.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Metodos Para Limpiar Pantalla
« Respuesta #1 en: Viernes 16 de Marzo de 2007, 14:27 »
0
Aca esta:
http://support.microsoft.com/kb/99261

Este es uno mas pequeño que servira para la mayoria de casos

Código: Text
  1.       int hWrittenChars = 0;
  2.       CONSOLE_SCREEN_BUFFER_INFO strConsoleInfo = new CONSOLE_SCREEN_BUFFER_INFO();      
  3.       COORD Home;  
  4.  
  5.       Home.x = Home.y = 0;
  6.       GetConsoleScreenBufferInfo(STD_OUTPUT_HANDLE , &strConsoleInfo);
  7.       FillConsoleOutputCharacter(STD_OUTPUT_HANDLE , EMPTY, strConsoleInfo.dwSize.x * strConsoleInfo.dwSize.y, Home, &hWrittenChars);
  8.       SetConsoleCursorPosition(STD_OUTPUT_HANDLE , Home);
  9.  
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

L1zb3th

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Metodos Para Limpiar Pantalla
« Respuesta #2 en: Viernes 16 de Marzo de 2007, 17:02 »
0
xDDDDDDDDD
si haces un programa en consola tambien podes usar conio 2, que ademas de esto trae muchas cosas como colores para la letra y demas....
Au Revoir !

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Metodos Para Limpiar Pantalla
« Respuesta #3 en: Viernes 16 de Marzo de 2007, 17:08 »
0
ahh lo olvidaba, para linux puedes usar ncurses para controlar la salida por consola.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Metodos Para Limpiar Pantalla
« Respuesta #4 en: Viernes 16 de Marzo de 2007, 17:13 »
0
Cita de: "L1zb3th"
si haces un programa en consola tambien podes usar conio 2, que ademas de esto trae muchas cosas como colores para la letra y demas....
No exactamente, la podes usar si haces un programa con un compilador que la soporte, en Windows tambien hay programas para consola y supongo que te referiras a MS-DOS.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

L1zb3th

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Metodos Para Limpiar Pantalla
« Respuesta #5 en: Viernes 16 de Marzo de 2007, 17:28 »
0
sip eternal :P
y si, yo uso el Dev-c++ con mingw
lo soporta claro, teniendo este caso por ejemplo ..

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Metodos Para Limpiar Pantalla
« Respuesta #6 en: Viernes 16 de Marzo de 2007, 20:45 »
0
Cita de: "JuanK"
ahh lo olvidaba, para linux puedes usar ncurses para controlar la salida por consola.
No y si al mismo tiempo, ncurses es para hacer dialogs en la terminal y no para controlarla en si.

Citar
Ah y que siginifica esos caracteres como j,%s en fin no entiendo ese codigo.

Es un escape de ANSI.

Mira esto, te sera de mucha ayuda:

http://en.wikipedia.org/wiki/ANSI_escape_code
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Metodos Para Limpiar Pantalla
« Respuesta #7 en: Viernes 16 de Marzo de 2007, 20:51 »
0
mmm si entiendo, pero de paso aprende algo un poco mas util :P
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

wilbur-naike

  • Miembro activo
  • **
  • Mensajes: 33
  • Nacionalidad: pe
    • Ver Perfil
Re: Metodos Para Limpiar Pantalla
« Respuesta #8 en: Viernes 16 de Marzo de 2007, 21:59 »
0
Agradesco cada ayuda que me dieron.

Y ese enlace trata de una funcion para usar el limpiado de pantalla. Muy bueno  :smartass:

Pero las verdad me gustaria aprender a entender este codigo:
Citar
char a[5]={27,'[','j',0} /* Para ambos (en DOS cargando antes ansi.sys) */
printf("%s",a);

y sobre el conio2 lo conozco.

S4lud0s

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Metodos Para Limpiar Pantalla
« Respuesta #9 en: Viernes 16 de Marzo de 2007, 22:11 »
0
Código: Text
  1. char a[5]={27,'[','j',0} /* Para ambos (en DOS cargando antes ansi.sys) */
  2. printf("%s",a);
  3.  


char a[5]={27,'[','j',0}

define un array de caracteres de 5 posiciones, si se considera a como un apuntador a una cadena entonces la cadena es : "←[j"

el primer caracter ( el # 27) corresponde al CARACTER SCAPE y el ultimo ( el 0) es un null.

esa secuencia de caracteres forma un caracter de escape que lo que hace es borrar toda la pantalla o sea un cls.

printf("%s",a);

ahi se imprime el caracter de escape , o sea ahi es donde se borra la pantalla.

Si miras el link que te envio su- veraz como esa secuencia de caracteres, en efecto borar la pantalla de acuerdo a la descripción indicada.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

AnioN

  • Miembro MUY activo
  • ***
  • Mensajes: 339
    • Ver Perfil
Re: Metodos Para Limpiar Pantalla
« Respuesta #10 en: Viernes 16 de Marzo de 2007, 23:30 »
0
a mi me parece que usar la funcion systemes demasiado para una funcion tan simple como limpiar la pantalla. Es mejor utulizar alguna funcion especial para este fin de esta manera ahorras recursos y la performance no baja.