Forum Webscript.Ru
Программирование => Perl => Тема начата: UltraMax от 25 Июня 2001, 12:17:51
-
Скрипт на перле работает под ОС линукс
Через print я вывожу необходимые мне сообщения в консоль.
Однако столкнулся с необходимстью выводить некоторые слова жирным шрифтом (или уж если не слова, то весь текст который идет через print).
Может кто подскажет, как это можно реализовать?
-
поюзай Tk.
-
Light Elf (27-06-2001 14:25):
поюзай Tk.
Что что поюзать???? Расшифруй плиз!
-
UltraMax (27-06-2001 16:43):
Light Elf (27-06-2001 14:25):
поюзай Tk.
Что что поюзать???? Расшифруй плиз!
Tk - это библиотеки для построения графического интерфейса, т.е. можно использовать в Perl модули Tk, подробнее на cpan.org ;)
-
Если не ошибаюсь, перед каждой буквой ваделяемого слова нужно вставлять 0x8.
Проверить легко: введи из командной строки что-то вроде "man ls > aaa" и посмотри получившийся файл. Там содержатся все необходимые символы, используемые для подсветки man-страниц.
-
Feska (09-07-2001 09:39):
Если не ошибаюсь, перед каждой буквой ваделяемого слова нужно вставлять 0x8.
Проверить легко: введи из командной строки что-то вроде "man ls > aaa" и посмотри получившийся файл. Там содержатся все необходимые символы, используемые для подсветки man-страниц.
Угу - символ то вроде 0x8 отвечает за жирность, но это в shell скрипте можно сделать
А как в перле-то, через print добавить жирность? Как включить в выводимой строчку этот 0x8 символ?
-
Угу - символ то вроде 0x8 отвечает за жирность, но это в shell скрипте можно сделать
А как в перле-то, через print добавить жирность? Как включить в выводимой строчку этот 0x8 символ?[/quote]
Так, например:
$a="abwfjpfgjdopfhgk";
$b=chr(8);
$a=~s/(\\w)/$1$b/g;
-
Feska (10-07-2001 09:21):
Так, например:
$a="abwfjpfgjdopfhgk" ;
$b=chr(8) ;
$a=~s/(\\w)/$1$b/g;
Написал так
#!/usr/bin/perl
$a = "test";
$b = chr(8) ;
$a = ~ s/(\\w)/$1$b/g;
print $a;
вот что выдает
4294967295
....
даже слово test не пишет, я уж не говрю о жирности... во какая засада
-
Написал так
#!/usr/bin/perl
$a = "test";
$b = chr(8) ;
$a = ~ s/(\\w)/$1$b/g;
print $a;
вот что выдает
4294967295
....
даже слово test не пишет, я уж не говрю о жирности... во какая засада[/quote]
--------------------------
Мой вариант: $a=~s/(\\w)/$1$b/g;
Твой вариант: $a = ~ s/(\\w)/$1$b/g;
Почувствуй разницу.
На всякий случай: оператор "=~" пишется без пробела.
-
Feska (12-07-2001 09:13):
Мой вариант: $a=~s/(\\w)/$1$b/g;
Твой вариант: $a = ~ s/(\\w)/$1$b/g;
Почувствуй разницу.
На всякий случай: оператор "=~" пишется без пробела.
Ну вот так написал
#!/usr/bin/perl
$a="test";
$b=chr(8);
$a=~s/(\\w)/$1$b/g;
print $a;
Вообще ничего не выдает!
А с каких это пор в перле пробелы стали учитываться?????
-
Ну вот так написал
#!/usr/bin/perl
$a="test";
$b=chr(8);
$a=~s/(\\w)/$1$b/g;
print $a;
Вообще ничего не выдает!
А с каких это пор в перле пробелы стали учитываться?????[/quote]
Извини, я что-то Linux давно не юзал.
При ближайшем рассмотрении дело выглядит так:
#!/usr/bin/perl
$a="test";
$b=chr(8);
$c=$a;
open(FL,"|more");
$c=~s/(\\w)/$1$b$1/g; #Один вид выделения
print FL "$c
";
$c=$a;
$c=~s/(\\w)/_$b$1/g; #Другой вид выделения
print FL "$c
";
close(FL);
more понадобился для того, чтобы все это работало. Без него идет серая картинка. Забыл, вах!
Еще я надыбал в документации про некий специальный модуль для цветного вывода.
Цитирую:
#!/usr/bin/perl
$a="test";
$b=chr(8);
$c=$a;
open(FL,"|more");
$c=~s/(\\w)/$1$b$1/g;
print FL "$c
";
$c=$a;
$c=~s/(\\w)/_$b$1/g;
print FL "$c
";
close(FL);
use Term::ANSIColor qw(:constants); print BOLD, BLUE, "This text is in bold blue.
", RESET;
-
Блин, запарился. Повтор.
...Цитирую:
use Term::ANSIColor qw(:constants);
print BOLD, BLUE, "This text is in bold blue.
", RESET;[/quote]
-
Feska (13-07-2001 09:42):
#!/usr/bin/perl
$a="test";
$b=chr(8);
$c=$a;
open(FL,"|more");
$c=~s/(\\w)/$1$b$1/g;
print FL "$c
";
$c=$a;
$c=~s/(\\w)/_$b$1/g;
print FL "$c
";
close(FL);
Выводит следющее
test
test
... то есть подчеркивание работает
а первый вывод стандартен, и жирности не наблюдается...
-
Почитай:
http://ls6-www.cs.uni-dortmund.de/cgi-bin/SFgate?language=English&verbose=1&listenv=DL&application=cpan&convert=CPAN&converthl=&refinequery=application=cpan&convert=CPAN&database=wait%2FDB%2Fcpan&detex=1&formextern=CPAN&multiple=1&range=1&verbose=1&name=&synopsis=&text=bold&author=&tie=or&_lines=whole+document&maxhits=40&language=English&formintern=&formextern=CPAN&transquery=bold&_lines=&multiple=0&descriptor=wait/DB/cpan|580|6107|Term::ANSIColor - Color screen output using ANSI escape sequences |CPAN|wait|/services/www-db/WAIT/DB/cpan|6
или
http://ls6-www.cs.uni-dortmund.de/cgi-bin/SFgate?language=English&verbose=1&listenv=DL&application=cpan&convert=CPAN&converthl=&refinequery=application=cpan&convert=CPAN&database=wait%2FDB%2Fcpan&detex=1&formextern=CPAN&multiple=1&range=1&verbose=1&name=&synopsis=&text=bold&author=&tie=or&_lines=whole+document&maxhits=40&language=English&formintern=&formextern=CPAN&transquery=bold&_lines=&multiple=0&descriptor=wait/DB/cpan|144|5899|Term::Screen |CPAN|wait|/services/www-db/WAIT/DB/cpan|1314