Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Salida en color

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Básico
Mensaje Mie Jun 22, 2005 1:57 am
pbellon
Perlero Nuevo
Perlero Nuevo
Registrado: 22 Oct 2004
Mensajes: 33
Salida en color Responder citando

Hola,

Tengo un programa en perl que muestra mensajes por pantalla atendiendo a unos criterios, fundamentalmente muestra tipos de errores producidos. Necesito que estas salidas indicativas de error, en mi caso, sean en color. ¿Cómo puedo indicarle a Perl que cuando escriba en pantalla algo sea de un color u otro?

Saludos y Gracias
Sad
Mensaje Mie Jun 22, 2005 7:45 am
monoswim
Vive para Perl en Español
Vive para Perl en Español
Registrado: 18 Nov 2003
Mensajes: 716
Ubicación: Buenos Aires
Responder citando

Es una salida en HTML o por consola ?

Que clase de programa es ?

Saludos
Mensaje Jue Jun 23, 2005 6:22 pm
danimera
Perlero Adicto
Perlero Adicto
Registrado: 23 Jun 2005
Mensajes: 239
Ubicación: Colombia
Re: Salida en color Responder citando

BUeno si te refieres a la salida del erro en color ,, me imagino que estaras hablando de un resultado en una pagina HTML
para ellos puedes usar etiquetas html-

Lo mejor es que expliques mejor tu pregunta para saber a que te refieres OK
Mensaje Vie Jun 24, 2005 2:53 am
pbellon
Perlero Nuevo
Perlero Nuevo
Registrado: 22 Oct 2004
Mensajes: 33
Salida en Color Responder citando

Hola de nuevo,

se trata de una salida por consola. El scipts trata de lo siguiente:

El perl ejecuta una serie de programas, concretamente compilaciones de otros scripts. Después lee y trata la salida, pero en lugar de mostrar todos los mensajes lo que debe hacer es mostrar determinados de ellos en rojo si son de error, etc. de esta forma con un simple vistazo, al ver el color rojo, se sabe que algo ha ido mal. Otros colores tendrán otra interpretación.

Saludos
Mensaje Vie Jun 24, 2005 7:22 am
kidd
Creador de Perl en Español
Creador de Perl en Español
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
Responder citando

Hola:

Lo primero sería ¿en qué tipo de consola estás trabajando?


SALUDOS
Mensaje Lun Jun 27, 2005 6:39 am
pbellon
Perlero Nuevo
Perlero Nuevo
Registrado: 22 Oct 2004
Mensajes: 33
Re: Responder citando

Hola,

sería la linea de comandos de windows 2000.

Saludos
Mensaje Mar Jun 13, 2006 3:27 am
ignasificus
Perlero Nuevo
Perlero Nuevo
Registrado: 01 Jun 2006
Mensajes: 13
Ubicación: Valencia
colores Responder citando

Saludos,
Rescato este polvoriento y viejo tema, pues me asalta la misma duda que pbellon.

Yo suelo utilizar perl, desde la consola de MS-DOS, y me gustaría poder darle color a las salidas de texto, para resaltar cosas importantes.

He estado buscando, y he encontrado el modulo Term::ANSIColor, pero no me funciona.

Código:

#!/usr/bin/perl
           use Term::ANSIColor;
      print color 'yellow';
           print "Este texto, deberia salir amarillo\n";


Pero la salida, en lugar de obtenerla en amarillo, me sale de la siguiente forma:
Código:

C:\Documents and Settings\Ignasificus\Practicas_PERL>perl -w colores_texto.pl
←[33mEste texto, deberia salir amarillo


Lo unico que cambia es que se le añade al principio una flecha [ y 33
Donde ha ido a esconderse el color?¿ Shocked
Mensaje Mar Jun 13, 2006 3:59 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4082
Ubicación: Valladolid, España
Responder citando

Significa que tu consola MS-DOS no entiende las secuencias de escape ANSI.

Necesitas editar el c:\config.sys para agregarle ese driver.

Reinicias el equipo y vuelves a probar.

El amarillo está ahí delante. Te ha salido un carácter de escape, un '[', un 33 y luego una 'm'. Según la tabla de secuencias ANSI, efectivamente, eso corresponde al amarillo.
Mensaje Mar Jun 13, 2006 4:27 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4082
Ubicación: Valladolid, España
Responder citando

Lo encontré. Quizás no tengas que instalar el driver ANSI.sys.

Prueba antes con esto
Código:
  use Win32::Console::ANSI;
  use Term::ANSIColor;

  print color 'bold blue';
  print "Este texto está en azul con negrita.\n";
  print color 'reset';
  print "Este texto es normal.\n";
  print colored ("Negrita amarillo sobre magenta.\n", 'bold yellow on_magenta');
  print "Este texto es normal.\n";

Lo que hace el módulo Win32::Console::ANSI es justo una emulación del driver ANSI.sys en Perl. El truco es ponerlo delante del módulo Term::ANSIColor, para que Perl crea que en realidad está sacando colores en una terminal ANSI.

Para la próxima vez me lo apunto: cualquier trabajo de Perl en Windows, hay que mirar antes el árbol de módulos Win32...
Mensaje Mar Jun 13, 2006 4:36 am
ignasificus
Perlero Nuevo
Perlero Nuevo
Registrado: 01 Jun 2006
Mensajes: 13
Ubicación: Valencia
Responder citando

Gracias!
Ya lo he puesto, ahora cuando reinicie, chequearé que funcione.
Mensaje Mar Jun 13, 2006 5:29 am
pbellon
Perlero Nuevo
Perlero Nuevo
Registrado: 22 Oct 2004
Mensajes: 33
Responder citando

Hola,
lo he probado (instalando previamente el modulo Win32-Console-ANSI-0.07.zip de http://ppm.activestate.com/PPMPackages/zips/8xx-builds-only/Windows/) y funciona perfectamente.

Nota:Con la versión 1.00 no funciona.
Very Happy
Publicar nuevo tema   Responder al tema    Foros de discusión -> Básico Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group