![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
alex457 |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Реальное имя: alex Репутация: ![]() ![]() ![]() |
Здраствуйте, такой вопрос, как вывести из списка одну запись например 3 из 100.
Создание списка происходит так:
Вывод всех записей:
А вот как обратиться к определенной записи непонимаю. Сообщение отредактировано: alex457 - 12.04.2012 9:40 |
![]() ![]() |
IUnknown |
![]()
Сообщение
#2
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Это не "продвинутое программирование". Не должна программа обращаться к элементам списка по порядковому номеру.
t := head; // Указатель - на НАЧАЛО списка (которое ты, кстати, не запоминаешь)Или просто (раз уж ты хранишь в поле Key порядковый номер записи) беги по списку, когда это поле станет равным нужному значению - напечатаешь данные. |
alex457 |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Реальное имя: alex Репутация: ![]() ![]() ![]() |
Ага, спасибо! И еще один небольшой вопрос. Объясни в теории как можно сделать постраничный вывод записей. Например 1,20 20,30. Как вперед листать этом понятно, указатель на next, А вот обратно вернуть к 1,20 неполучаеться чегото. буду очень благодарен.
|
IUnknown |
![]()
Сообщение
#4
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
В теории - проще всего поменять односвязный список на двухсвязный, и ходить по нему не только next, но и prev
![]() |
alex457 |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Реальное имя: alex Репутация: ![]() ![]() ![]() |
Мне нужен односвязный). Гемор конечно, но нужно..
Сообщение отредактировано: alex457 - 12.04.2012 13:14 |
IUnknown |
![]()
Сообщение
#6
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ну, нужно - так делай. Как найти элемент с номером X, ты знаешь, запоминай, с какого элемента списка начинается "текущая страница" на экране, при следующем обновлении страницы отсчитывай от начала X - 20, и выводи 20 записей.
Цитата Гемор конечно, но нужно.. А потом они еще удивляются |
alex457 |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Реальное имя: alex Репутация: ![]() ![]() ![]() |
Ну, нужно - так делай. Как найти элемент с номером X, ты знаешь, запоминай, с какого элемента списка начинается "текущая страница" на экране, при следующем обновлении страницы отсчитывай от начала X - 20, и выводи 20 записей. А потом они еще удивляются Такое решение не очень по одной простой причине: Скорость обработки вообще никакая. Вместо того что бы перебрать 20 записей, вы каждый раз собираетесь перебирать все 100. Принцип как это сделать я знаю. У меня только вопросы по указателям, как их сделать Сообщение отредактировано: alex457 - 12.04.2012 17:34 |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 13:42 |