|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Alexander V. Gaiduk 2:5020/400 24 Jan 2002 13:42:43 To : Dmitry M. Gavrin Subject : Hа: Раскрасить "print" -------------------------------------------------------------------------------- > Можно ли каким-то образом выводить в терминале текст не дефолтным > цветом, а как-то раскрасить (например красным)? Интересует как это сделать > как под Linux'ом, так и в винде. > Где об этом можно почитать? Желательно по-русски. почитать: c:\windows\msdosdrv.txt а вот пример: #!/usr/bin/perl # For Windows need ANSI.SYS ! print "\033[2J"; # clear screen &printext(3, 2, 0xF4, " ANSI Color Table by Perl" . " " x 40); &printext(3, 3, 0x07, "+" . "-" x 64 ."+"); for $y (0..15) { &printext(3, $y+4, 0x07, "|"); &printext(68, $y+4, 0x07, "|\n"); for $x (0..15) { $color = $y*16+$x; &printext($x*4+4, $y+4, $color, sprintf(" %02X ", $color)); } } &printext(3, 20, 0x07, "+" . "-" x 64 ."+"); sub printext { # X, Y, Color, Text } if ($_[2] > 255) { die "*** Error!\nInvalid color value = $_[2].\n" } my $_px_f = $_[2] & 0x0F; my $_px_b = $_[2] >> 4; if ($_px_f > 7) { $_px_f = $_px_f-8; print "\033[1m"; } print "\033[",eval($_px_f+30),"m"; if ($_px_b > 7) { $_px_b = $_px_b-8; print "\033[5m"; } print "\033[",eval($_px_b+40),"m"; print "\033[", $_[1], ";", $_[0], "H", $_[3], "\033[0m"; } понимаю, что изврат, но вот захотелось чего то остренького... :))) в юнихах и так работает, в "неюнихах" нужен ANSI.SYS кстати, никто не скажет как его в NT присобачить? а то в config.nt тока для DOSнутых прог, а хотелось бы и для win32-console... =GAV --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/1199985586c91.html, оценка из 5, голосов 10
|