Forum Webscript.Ru

Программирование => Perl => Тема начата: UltraMax от 25 Июня 2001, 12:17:51

Название: Вывод [b]Жирным[/b] текста сообщения в линуксовой командной строке
Отправлено: UltraMax от 25 Июня 2001, 12:17:51
Скрипт на перле работает под ОС линукс
Через print я вывожу необходимые мне сообщения в консоль.
Однако столкнулся с необходимстью выводить некоторые слова жирным шрифтом (или уж если не слова, то весь текст который идет через print).
Может кто подскажет, как это можно реализовать?
Название: Вывод [b]Жирным[/b] текста сообщения в линуксовой командной строке
Отправлено: Light Elf от 27 Июня 2001, 14:25:09
поюзай Tk.
Название: Вывод [b]Жирным[/b] текста сообщения в линуксовой командной строке
Отправлено: UltraMax от 27 Июня 2001, 16:43:50
Цитировать
Light Elf (27-06-2001 14:25):
поюзай Tk.

Что что поюзать???? Расшифруй плиз!
Название: Вывод [b]Жирным[/b] текста сообщения в линуксовой командной строке
Отправлено: Green Kakadu от 04 Июля 2001, 02:25:50
Цитировать
UltraMax (27-06-2001 16:43):
Цитировать
Light Elf (27-06-2001 14:25):
поюзай Tk.

Что что поюзать???? Расшифруй плиз!
Tk - это библиотеки для построения графического интерфейса, т.е. можно использовать в Perl модули Tk, подробнее на cpan.org ;)
Название: Вывод [b]Жирным[/b] текста сообщения в линуксовой командной строке
Отправлено: Feska от 09 Июля 2001, 09:39:46
Если не ошибаюсь, перед каждой буквой ваделяемого слова нужно вставлять 0x8.
Проверить легко: введи из командной строки что-то вроде "man ls > aaa" и посмотри получившийся файл. Там содержатся все необходимые символы, используемые для подсветки man-страниц.
Название: Вывод [b]Жирным[/b] текста сообщения в линуксовой командной строке
Отправлено: UltraMax от 09 Июля 2001, 12:29:11
Цитировать
Feska (09-07-2001 09:39):
Если не ошибаюсь, перед каждой буквой ваделяемого слова нужно вставлять 0x8.
Проверить легко: введи из командной строки что-то вроде "man ls > aaa" и посмотри получившийся файл. Там содержатся все необходимые символы, используемые для подсветки man-страниц.

Угу - символ то вроде 0x8 отвечает за жирность, но это в shell скрипте можно сделать
А как в перле-то, через print добавить жирность? Как включить в выводимой строчку этот 0x8 символ?
Название: Вывод [b]Жирным[/b] текста сообщения в линуксовой командной строке
Отправлено: Feska от 10 Июля 2001, 09:21:52
Угу - символ то вроде 0x8 отвечает за жирность, но это в shell скрипте можно сделать
А как в перле-то, через print добавить жирность? Как включить в выводимой строчку этот 0x8 символ?[/quote]

Так, например:
$a="abwfjpfgjdopfhgk";
$b=chr(8);
$a=~s/(\\w)/$1$b/g;
Название: Вывод [b]Жирным[/b] текста сообщения в линуксовой командной строке
Отправлено: UltraMax от 10 Июля 2001, 14:02:09
Цитировать
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 не пишет, я уж не говрю о жирности... во какая засада
Название: Вывод [b]Жирным[/b] текста сообщения в линуксовой командной строке
Отправлено: Feska от 12 Июля 2001, 09:13:53
Написал так

#!/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;
Почувствуй разницу.
На всякий случай: оператор "=~" пишется без пробела.
Название: Вывод [b]Жирным[/b] текста сообщения в линуксовой командной строке
Отправлено: UltraMax от 12 Июля 2001, 11:43:29
Цитировать
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;

Вообще ничего не выдает!
А с каких это пор в перле пробелы стали учитываться?????
Название: Вывод [b]Жирным[/b] текста сообщения в линуксовой командной строке
Отправлено: Feska от 13 Июля 2001, 09:42:33
Ну вот так написал

#!/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;
Название: Вывод [b]Жирным[/b] текста сообщения в линуксовой командной строке
Отправлено: Feska от 13 Июля 2001, 09:57:44
Блин, запарился. Повтор.
...Цитирую:
use Term::ANSIColor qw(:constants);    
print BOLD, BLUE, "This text is in bold blue.
", RESET;[/quote]
Название: Вывод [b]Жирным[/b] текста сообщения в линуксовой командной строке
Отправлено: UltraMax от 13 Июля 2001, 13:12:03
Цитировать
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
... то есть подчеркивание работает
а первый вывод стандартен, и жирности не наблюдается...
Название: Вывод [b]Жирным[/b] текста сообщения в линуксовой командной строке
Отправлено: Light Elf от 14 Июля 2001, 09:56:52
Почитай:
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