• Publicidad

Equivalente a gotoxy en Perl pero para Windows

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Equivalente a gotoxy en Perl pero para Windows

Notapor ManuelPerl » 2013-09-06 18:39 @818

Hola, estoy buscando la equivalencia en Perl de la función de C gotoxy para posicionar texto en la consola. Por lo visto el Term::Cap o el screen no funcionan en Windows. La versión de Perl es la que viene con el IDE Padre 5.14.2. A ver qué módulo me podría valer.
ManuelPerl
Perlero nuevo
Perlero nuevo
 
Mensajes: 41
Registrado: 2011-06-21 16:23 @724

Publicidad

Re: Equivalente a gotoxy en Perl pero para Windows

Notapor explorer » 2013-09-06 20:19 @888

gotoxy() no es una función de C. Es una función que está definida en la biblioteca conio.h.

En otros tiempos, te diría que habría que cargar el controlador ANSI del Windows para que las consolas de texto se comportaran como las consolas de Unix/Linux. Pero eso dejó de funcionar a partir de Windows NT/2000/XP. Afortunadamente, en Perl, hay un módulo que imita el funcionamiento de una consola ANSI: Win32::Console::ANSI.

En cambio, hoy en día, para gestionar las consolas de Windows, se puede usar otro módulo: Win32::Console.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Equivalente a gotoxy en Perl pero para Windows

Notapor ManuelPerl » 2013-09-06 21:40 @944

explorer, he intentado instalar este módulo pero me dice que no puede instalarlo. Tengo el IDE Padre con versión de Perl 5.14.2. Me fui al cpan install Win32::Console::ANSI, y también puse force install Win32::Console::ANSI, pero al final me da error:

Can't locate Term/ANSIScreen.pm in @INC (@INC contains:
b D:/Dwimperl/perl/vendor/lib D:/Dwimperl/perl/lib .) a
BEGIN failed--compilation aborted at ansi.pl line 8.


#!/usr/bin/perl

use 5.010;
use strict;
use warnings;

use Win32::Console::ANSI;
use Term::ANSIScreen qw/:color :cursor :screen/;

locate 1, 1; print "@ This is (1,1)", savepos;
print locate(24,60), "@ This is (24,60)"; loadpos;
print down(2), clline, "@ This is (3,16)\n";
color 'black on white'; clline;
print "This line is black on white.\n";
print color 'reset'; print "This text is normal.\n";
print colored ("This text is bold blue.\n", 'bold blue');
print "This text is normal.\n";
print colored ['bold blue'], "This text is bold blue.\n";
print "This text is normal.\n";
ManuelPerl
Perlero nuevo
Perlero nuevo
 
Mensajes: 41
Registrado: 2011-06-21 16:23 @724

Re: Equivalente a gotoxy en Perl pero para Windows

Notapor ManuelPerl » 2013-09-06 21:42 @946

D:\Dwimperl\perl\bin>cpan Win32::Console::ANSI
CPAN: CPAN::SQLite loaded ok (v0.202)
Database was generated on Fri, 06 Sep 2013 23:23:15 GMT
CPAN: Module::CoreList loaded ok (v2.57)
Win32::Console::ANSI is up to date (1.05).
ManuelPerl
Perlero nuevo
Perlero nuevo
 
Mensajes: 41
Registrado: 2011-06-21 16:23 @724

Re: Equivalente a gotoxy en Perl pero para Windows

Notapor explorer » 2013-09-07 07:05 @337

No es

cpan install Win32::Console::ANSI

sino

cpan Win32::Console::ANSI

(sobra la palabra 'install'. Este es un fallo muy común).

El mensaje de error dice que es el módulo Term::ANSIScreen el que no está instalado.

Tendrás que hacer un

cpan Term::ANSIScreen
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Equivalente a gotoxy en Perl pero para Windows

Notapor ManuelPerl » 2013-09-07 07:24 @350

Perfecto, solucionado. Efectivamente no estaba instalado el módulo Term::ANSIScreen, ya funciona perfectamente.
Queda cerrada esta pregunta.
ManuelPerl
Perlero nuevo
Perlero nuevo
 
Mensajes: 41
Registrado: 2011-06-21 16:23 @724


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados