Ладно оставим мою програмку...
Цитата
А зачем нужен массив??? Ведь первые 20 записей выводятся без массива.
Да, первые записи выводятся.... и последующие можно вывести, но если ты попытаешься прокрутить текст на начало или в конец, то будут существенные тормоза, связанные с постоянным обращением к файлу данных.
Массив нужен в качестве буффера (можно использовать и динамическую память) обмена информацией между файлом и экраном.
Т.е. алгоритм такой:
Имеется буффер, скажем на 300-500 строк.
В начале работы, считываем из файла строки и заполняем буффер. Во время прокрутки текста обращаемся за данными к буфферу (обращение к памяти намного быстрее чем к файлу).
В случае, когда данные выходят за пределы буффера - производим его перезаполнение. (Можно в качестве начальной точки заполнения использовать "ТЕКУЩИЙ УКАЗАТЕЛЬ СТРОКИ В ФАЙЛЕ" - ("ОБЪЕМ БУФФЕРА"/2). Тогда у нас в буффере будет запас на просмотр и "вниз" и "вверх")
Главное в этом механизме не запутаться с текущмим указателями: в файле, в буффере, на экране.