Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не могу прогу написать....
Форум программистов > Системное программирование > Delphi и Pascal > Delphi - FAQ
Guest_Дмитрий
Задание такое: Написать программу, которая моделирует заполнение магнитного диска.
Полный объём 360Кб. Файлы имеют произвольную длину от 18 до 32Кб. Файлы либо записываются либо удаляются.
В начале работы файлы последовательно записываются друг за другом. После удаления файла на пустое место записывается новый(если места не хватает выдаётся авварийное сообщение).Требование на запись и удаление( задаётся в командной строке) которое содержит Имя файла, размер в байтах и признак записи/удаления.Программа должна выдавать сведения о свободных и занятых участках диска.
zubr
Можно сделать так:
1. В качестве эмулятора диска создать файл размером 360 Кб.
2. Выделить в начале файла-эмулятора место под файловую таблицу, где должны сохраняться данные о файлах (имя, размер), а также информацию о свободных участках файла (номера байтов).
3. Ваша программа должна будет записывать файлы в файл-эмулятор диска с заголовком, в котором будут указаны имя файла, размер файла, номер байта с которого записан данный кусок файла.
4. При удалении файла, программа должна читать заголовки, чтобы занести номера байт освободившихся участков в файловую таблицу.
5. При записи файла, программа должна вычитывать из файловой таблицы информацию о свободных участках, проверить хватит ли места на этих свободных участках, если да то разместить в них записываемый файл, в противном случае, выдать сообщение о нехватке места.
Guest_Дмитрий
А как же всё это реализовать в паскале?
zubr
Используя файловые функции AssignFile, Reset, Rewrite, Append, Seek, SeekEof, SeekEoln, Read, Write.
Artexoid
zubr
А я в разговор со своим вопросом впишусь rolleyes.gif !!
Знаю все функции кроме одной "SeekEoln". Что она делает ???
zubr
Artexoid
function SeekEoln [ (var F: Text) ]: Boolean;
Результат функции = True, когда указатель файла находится в конце строки.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.