Zobrazeni progresu

Honza Pazdziora adelton na informatics.muni.cz
Neděle Květen 18 13:44:56 MEST 2003


On Sat, May 17, 2003 at 07:15:25AM +0200, Zbynek Houska wrote:
> 
>   Prikladam muj skriptik a zajima mne proc posledni radek neprepisuje

Zminimalizujte ho na priklad, ktery vykazuje neocekavane chovani, ale
neobsahuje zadnou funkcionalitu s neocekavanym chovanim nesouvisejici.
Takhle ten skript ani nikdo nemuze vzit mysi, aby zjistil, jestli ...

> predchozi radek, pokud bych tam nepridal mezeru mezi uvozovky tak by tam

... mate na mysli posledni radek skriptu, tedy

	print "   Tisk uspesne ukoncen!   ";

nebo posledni v dane chvili vytisteny radek, nebo jestli ...

> vzdy zbyly nejake znaky... V tomhle pripade me zrovna nic nenapada.

... jste uz problem vlastne vyresil pridanim tech mezer v hlasky
v poslednim radku skriptu, nebo jestli resite problem, ktery nastane,
kdyz se promenna $aolp zmensi z 10 na 9.

Pokud jde o to, ze pri vypisu hlasky kratsi nez byla hlaska predchozi
neni hlaska predchozi vymazana, ale jeji konec trci na konci radku,
o tom tady uz psal kolega. Je to dano tim, ze "\r" neni "smazani
radku", ale "carriage return", tedy navrat kurzoru na zacatek radku.
Radek (na obrazovce) to prepise pouze tim, co tam nasledne zapisete.
Cili nejrozumnejsi reseni je pri tom vypisu delat neco jako

	$| = 1;
	sub print_one_line {
		my $data = shift;
		print "\r", substr($data . (' ' x 80), 0, 80);
	}
	print_one_line "prvni";
	sleep 3;
	print_one_line "druhy radek";
	sleep 3;
	print_one_line "treti";
	sleep 3;
	print_one_line "nefunguje pro \t tabelatory";	# problem
	sleep 3;
	print_one_line "paty";
	print "\n";
__END__

s tim, ze pokud to chcete mit perfektni a odstranit i problem v tomto
prikladu demonstrovany, musel byste si osetrit i tabelatory, znaky
noveho radku a jine, ktere mohou to radkovani rozhodit.

-- 
------------------------------------------------------------------------
 Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
 .project: Perl, mod_perl, DBI, Oracle, auth. WWW servers, XML/XSL, ...
		Only self-confident people can be simple.


Další informace o konferenci Perl