![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
biba |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Женский Репутация: ![]() ![]() ![]() |
Есть ведомость ( текстовой файл). Причем все записи не вмещаются на экране. Движение должно быть по стрелкам. Т.е. как я поняла ведомость должна "прокручиваться". Вот как двигаться по стрелкам я не знаю
![]() Я знаю, что должны использоваться какие-то коды клавиш или еще что-то там, но как это в программу втиснуть я даже и представить не могу. ![]() З.Ы. А append может только одну запись добавлять в файл или несколько? |
![]() ![]() |
APAL |
![]()
Сообщение
#2
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
Ладно оставим мою програмку...
Цитата А зачем нужен массив??? Ведь первые 20 записей выводятся без массива. Да, первые записи выводятся.... и последующие можно вывести, но если ты попытаешься прокрутить текст на начало или в конец, то будут существенные тормоза, связанные с постоянным обращением к файлу данных. Массив нужен в качестве буффера (можно использовать и динамическую память) обмена информацией между файлом и экраном. Т.е. алгоритм такой: Имеется буффер, скажем на 300-500 строк. В начале работы, считываем из файла строки и заполняем буффер. Во время прокрутки текста обращаемся за данными к буфферу (обращение к памяти намного быстрее чем к файлу). В случае, когда данные выходят за пределы буффера - производим его перезаполнение. (Можно в качестве начальной точки заполнения использовать "ТЕКУЩИЙ УКАЗАТЕЛЬ СТРОКИ В ФАЙЛЕ" - ("ОБЪЕМ БУФФЕРА"/2). Тогда у нас в буффере будет запас на просмотр и "вниз" и "вверх") Главное в этом механизме не запутаться с текущмим указателями: в файле, в буффере, на экране. Эскизы прикрепленных изображений ![]() -------------------- |
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 23:37 |