|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Timur Sabirzyanov 2:5080/197.197 30 Oct 2000 12:56:27 To : Andrew Perevodchik Subject : Re: Вопрос по существу -------------------------------------------------------------------------------- 29 Окт 00 20:29, Andrew Perevodchik -> Alexander Potashov: AP>> У меня есть стpаница котоpая содеpжит некотоpую часть(1/6 AP>> допустим) инфоpмационного текста. Я специально не вписываю в AP>> стpаницу весь текст, чтобы не мучить юзеpа длинными и неудобными AP>> полями пpокpутки. Чтобы юзеp получил следующую поpцию текста ему AP>> надо нажать кнопку или ссылку. AP>> Как мне сделать такую вещь? AP> Читать файл умеешь? Отобразжать умеешь? В чем проблемы? AP> запрос на script.pl?text=file.txt&page=3 AP> Открываем вайл file.txt, делаем seek на строку 20*3 *если выводить AP> хочешь по 20 строк за раз). Читаешь и выводишь на экран следующие 20 AP> строк. В конце документа печатаешь ссылки на то же самое, только AP> page=2 (т.е. 3-1) и page=4 (3+1) и именуешь их как "назад" и "вперед". Объясни как сделать seek на строку 20*3, а то както некузяво вышло... да вообще исправьте ашипки плиз. ---------------------------------------------------------------------------- #!perl use CGI; my $cgi = new CGI; print $cgi->header('text/html'); print $cgi->start_html(":: TextReader ::"); my $text = $cgi->param('text'); my $page = $cgi->param('page'); open txtf,"<$text" or die $!; print "<h3>reading the $page page of the $text</h3>\n"; @buf=<txtf>; $forw=1; print "<pre>\n"; for $i(20*$page..20*$page+19) { print $buf[$i]; $forw=0 if $buf[$i] eq '';} print "</pre>"; $f=$page+1; $b=$page-1; if ($page eq 0) { $back=0; } else { $back=1; } print "<a href=/cgi-bin/reader.pl?text=$text&page=$b>back</a>\t" if ($back); print "<a href=/cgi-bin/reader.pl?text=$text&page=$f>forward</a>\n" if ($forw); close txtf; print $cgi->end_html(); ---------------------------------------------------------------------------- p.s. одну ошибку я только что заметил. если число строк файла делится нацело на 20 то на последней странице будет forward, а не должно! WBR, Tim. ... Моральный секс. --- [ Teams: RammsЕein | M.Manson | KMFDM | C/C++ | Perl | 3DMAX | TSL ] * Origin: Resist or Serve (2:5080/197.197) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/474639fd1c9c.html, оценка из 5, голосов 10
|