В цикле переписать из основного файла во вспомогательный все элементы, номера которых меньше заданного. Для этого можно использовать вспомогательную переменную того же типа, что и у элементов файла. Во вспомогательный файл записать значение, которое надо вставить. В цикле переписать из основного файла во вспомогательный все оставшиеся элементы.
Закрыть основной и вспомогательный файлы.
Уничтожить основной файл.
Переименовать вспомогательный файл в основной.
Во втором алгоритме вместо вспомогательного файла используются две вспомогательные переменные того же типа, что и у элементов файла, и вспомогательная переменная-счетчик типа Longlntдля запоминания текущего места вставки.
Первой вспомогательной переменной присвоить значение, которое надо вставить в файл.
Установить файловый указатель на место вставки с помощью процедуры Seek.
Запомнить место вставки в переменной-счетчике с помощью функции FilePos.
Прочитать значение того элемента, на который указывает файловый указатель, и присвоить второй вспомогательной переменной. Снова установить файловый указатель на место вставки с помощью процедуры Seek, используя значения счетчика.
В цикле, пока файл не прочитан:
записать в доступный элемент файла значение первой переменной;
запомнить новое место вставки, увеличив счетчик;
первой вспомогательной переменной присвоить значение второй;
прочитать значение того элемента, на который указывает файловый указатель, и присвоить второй вспомогательной переменной;
установить файловый указатель на место вставки с помощью процедуры Seek, используя значения счетчика.
Записать в доступный элемент файла значение первой переменной.
Напоследок заметим, что значение второго аргумента в вызове процедуры Seek может не быть номером элемента в файле, т.е. может быть отрицательным или большим чем количество элементов файла. При ее вызове ничего не случится, но при дальнейшей попытке прочитать элемент с отрицательным номером, установленным при ее вызове, выполнение программы аварийно завершится. Ведь элемента с таким номером нет!
Еще интереснее будет, если в вызове Seek задать номер, больший количества элементов в файле, а потом попробовать записать информацию в этот будто бы доступный элемент файла. Ошибки не возникнет, но в файле почему-то появятся совершенно непонятные данные, “мусор”. Проверьте это и подумайте, почему так получается! И будьте внимательны, когда записываете второй аргумент процедуры Seek.
2. Порядок выполнения работы
1. Изучить принципы организации и правила работы с файлами на ПЭВМ с использованием алгоритмического языка Turbo Pascal.
2. Получить у преподавателя вариант задания.
3. Составить и выполнить программу.
4. Предъявить преподавателю результаты работы программы.
5. Провести анализ полученных результатов, оформить отчет.
6. Защитить и сдать преподавателю лабораторную работу.
Задание для самостоятельного выполнения:
При создании файлов, использовать данные типа запись из лабораторной работы №12 (Ввести информацию из Л.Р.№12 в массив записей).
Программа должна состоять из трёх частей:
Часть 1: Программа создания файла с прямым доступом;
Часть 2: Программа создания файла с последовательным доступом;
Часть 3: Программа поиска и корректировки данных в существующем файле;
1. Контрольные вопросы
1. Что такое файл? Какие существуют виды файлов?
2. Какими стандартными процедурами и функциями располагает Turbo Pascal для работа с файлами?
3. Каково должно быть содержание программы по созданию файла и его корректировке (замена элементов, добавление новых элементов, удаление элементов)?
4. Каковы особенности работы с файлами прямого и последовательного доступа?
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.