Forum Webscript.Ru

Программирование => Perl => Тема начата: Psixolog от 27 Октября 2005, 05:34:26

Название: Помогите Plz
Отправлено: Psixolog от 27 Октября 2005, 05:34:26
как сделать, если более 20 строчек, то создавалось новая страница.
Например: Страница [1] 2 3 4
Название: Помогите Plz
Отправлено: AnnA от 27 Октября 2005, 11:55:40
передавайте в url_param индекс массива: $howMatch=20;
for (0..$howMatch) {
print $array[$_]
}
это одно изрешений. вариантов масса. ;)
выводим ссылки на страницы:
print qq~[2]
[3]
...~;

идея, думаю, понятна
Название: Помогите Plz
Отправлено: Psixolog от 27 Октября 2005, 12:52:41
А что то типа

open (TXT,"1.txt");
@strings=;
$count=@strings;
close (TXT);

# Если их количество больше 10,создаём новую страницу
if ($count>10) {
print "страница: 1\\n";
}

Что то типа того =))
Название: Помогите Plz
Отправлено: Error202 от 27 Октября 2005, 14:10:50
А как оптимальней сделать, когда 3542 страницы...
1...23 24 [25] 26 27 28...3542
<< 23 24 [25] 26 27 28 >>
<< 25 of 3542 >>
или еще как-то?
Название: Помогите Plz
Отправлено: AnnA от 27 Октября 2005, 14:21:55
Psixolog нет.
лучше сразу найти выводимое кол-во ссылок.
например, если хочется выводить по 20 элементов массива:
$hrefs = int(scalar(@arr)/20); теперь у нас есть кол-во страниц, можно формировать строку ссылок:
Цитировать
Error202:
1...23 24 [25] 26 27 28...3542 << 23 24 [25] 26 27 28 >> << 25 of 3542 >>

как угодно. ;) как больше нравится, так и делайте.
Название: Помогите Plz
Отправлено: Error202 от 27 Октября 2005, 14:25:48
Так мне и интересно, как удобно обычно?
Название: Помогите Plz
Отправлено: AnnA от 27 Октября 2005, 14:33:56
Цитировать
Error202:
когда 3542 страницы...

я бы сделала так:
«« « …23 24 [25] 26 27 28 29 30 31 32 33… » »»
--------------------------
«« - первая страница
«  -  предыдущих 10. т.е. ряд ссылок выглядит так:
      13 ..... 22
»  - соответственно 10 следующих
»» - последняя
Название: Помогите Plz
Отправлено: Error202 от 27 Октября 2005, 14:40:55
Да... Так аккуратней...
Название: Помогите Plz
Отправлено: Error202 от 27 Октября 2005, 14:53:34
Как узнать количество десятков в цифре...?
т.е. просто отсечь остаток при делении...
Название: Помогите Plz
Отправлено: Psixolog от 27 Октября 2005, 15:09:26
=)) Код кто нить подскажет ???

=) ты де не будешь смотреть сначала первую а потом последн.. страницу =)) зачем?

Страница: [1] 2 3 4 5 6 ...

Вот так самое оптимально!
Теперь к главному, я думал думал и придумал


#!/use/bin/perl

print "Content-type:text/html\\n\\n";

open (LOG,"1.txt");
@strings=;
$count=@strings;
close (LOG);

# Если их количество больше 10,создаём страницы.

if ($count>10) {
print "Страница:\\n";
for($i=1; $i<10; $i++) {
print "[ $i ]\\n";
}
}
Название: Помогите Plz
Отправлено: Error202 от 27 Октября 2005, 15:21:21
А вдруг тебе надо перейти к последней странице... Может там что полезное... Перибирать все десятки, если страниц более 5000 - до вечера... :)
Название: Помогите Plz
Отправлено: AnnA от 27 Октября 2005, 15:31:06
my ($total,$how,$links,$now)=(scalar(@arr),8,1,url_param(\'page\'));

for ($c=0;$c<$total;$c++)
 { $pages=int($c/$how)*$how;
   if($pages eq $c)
     { if ($pages eq $now)
       { print qq~ ($links)~;}
         else {print qq~ [$links]~;}
       $links++
     }
 }

код не проверяла, но без use strict; рабочий по идее. ;)
Название: Помогите Plz
Отправлено: Psixolog от 27 Октября 2005, 15:42:49
Что есть $total,how,now

А простой пример можешь привести а то я что то не разберусь

Тоесть

у меня текст допустим 1.txt

там
написано

1
2
3
4
5

тобишь 5 строчек

две на одной странице

ещё 2 на другой

и последняя на третьей.

В итоге:

1
2

Страница: [1] 2 3
________________

3
4

Страница: 1 [2] 3
________________
Если дашь такой код цены тебе не будет! =))
Название: Помогите Plz
Отправлено: Psixolog от 27 Октября 2005, 15:44:40
Цитировать
Error202:
А вдруг тебе надо перейти к последней странице... Может там что полезное... Перибирать все десятки, если страниц более 5000 - до вечера...

У меня не будет больше 10 страниц =))
Название: Помогите Plz
Отправлено: Error202 от 27 Октября 2005, 16:03:56
Вопросов нет... :)
Название: Помогите Plz
Отправлено: AnnA от 27 Октября 2005, 16:15:15
Psixolog
кол-во элементов массива,
сколько элемнтов выводить
номер страницы на которой пользователь сейчас (в данный момент)
простой же код, ну напрягитесь чуть-чуть, подумайте. м? ;)
я верю - всё у вас получится.
Название: Помогите Plz
Отправлено: Psixolog от 27 Октября 2005, 21:28:09

#Что тут вера ... хотя бы намёк ... а то ...
#НУ была задумка ... ну не получается у меня!
#2-ой месяц изучаю Перл, до етого ни чего не изучал!
Название: Помогите Plz
Отправлено: AnnA от 28 Октября 2005, 12:07:57
я же написала вам код, проверила даже.
покажите что вы делаете, что хотите сделать и что у вас не получается.
Название: Помогите Plz
Отправлено: Psixolog от 30 Октября 2005, 18:12:17
Мне нуже пример что бы я разобрался куда именно вставлять код который ты привела. Самы простой пример ...

Вот что мне нужно и всё =))