- •Лабораторная работа № 1 работа с датой и временем системы
- •Процедуры работы с датой и временем системы
- •Процедуры работы с датой и временем создания/модификации файла
- •Задания
- •Лабораторная работа № 2 проверка состояния диска
- •Задания
- •Лабораторная работа № 3 работа с файлами: поиск
- •Лабораторная работа № 4 работа с файлами: просмотр и изменение атрибутов
- •Примеры:
- •Задания
- •Задания
- •Лабораторная работа № 5 управление операционной средой в ос windows 2000. Переменные Окружения
- •Задания
- •Лабораторная работа № 6
- •Прерывания и исключения. Физическая структура
- •Диска. Программное обслуживание прерываний
- •Типы прерываний и исключений
- •Физическая структура диска
- •Программный вызов диспетчера функций
- •Многие функции устанавливают текущий флаг процессора и возвращают код ошибки в регистре ax, если в процессе обращения к функции произошла ошибка. Из специальных таблиц можно узнать причину ошибки.
- •Функции dos для получения информации о системе
- •Задания
- •Лабораторная работа № 7 планирование исполнения процессов с помощью алгоритма sjf
- •Задания
- •Лабораторная работа № 8 Шифрование сообщений методом rsa
- •Задание
- •Лабораторная работа № 9 Работа с системным реестром в ос Windows nt/2000
- •Структура реестра
- •Хранение данных реестра
- •Редакторы реестра
- •Задания
- •Лабораторная работа № 10 работа с программой «Диспетчер задач»
- •Запуск диспетчера задач
- •Мониторинг процессов
- •Ошибки страницы - число прерываний, которые возникают, когда приложение пытается прочитать или записать данные в несуществующую виртуальную память.
- •Выбор процессора
- •Скорость обновления
- •Мониторинг производительности системы
- •Задания
- •Запустите на выполнение приложение ms Excel.
- •Измените приоритет запущенного приложения.
- •Литература
- •Содержание
Процедуры работы с датой и временем создания/модификации файла
Для работы с датой создания файла используется процедура:
GetFTime (VAR F; VAR Time : LongInt);
которая возвращает время и дату создания файла. Переменная F должна быть файловой переменной.
Время и дата возвращаются в переменной Time в упакованном формате в виде двойного слова (32 бита), и для их распаковки используется процедура
UnpackTime (Time : LongInt; VAR DT : DateTime);
Эта процедура преобразовывает значение, переданное в параметре Time, в запись DT типа DateTime (дата и время). Тип DateTime описан в модуле DOS следующим образом:
TYPE
DateTime = RECORD
Year, Month, Day, Hour, Min, Sec: WORD;
END;
Таким образом, объявив в программе переменную типа DateTime, можно получить доступ к дате и времени создания или последней модификации файла.
Процедуры GetFTime и UnpackTime используются для считывания даты и времени создания файла. Для того, чтобы изменить эту величину, используются две другие процедуры: PackTime и SetFTime.
Процедура:
PackTime (VAR T : DateTime; VAR Time : LongInt);
преобразовывает запись типа DateTime в двойное слово, используемое процедурой:
SetFTime (VAR F; Time : LongInt);
Процедура SetFTime устанавливает дату создания файла. О том, как прошла данная операция, можно узнать из переменной DosError, описанной в модуле DOS. В случае успешного завершения переменная DosError будет содержать значение 0. В случае неудачи код ошибки может быть только 6 (разрушен заголовок файла).
Файл, для которого необходимо изменить дату создания, должен быть открыт для чтения. Если файл открыт процедурой Rewrite, то после того, как дата его создания изменена и в конце работы файл будет закрыт процедурой Close, дата создания автоматически обновится, т.е. установится текущая системная дата. Поэтому, если происходит запись в файл, а затем требуется изменить дату его создания, можно просто выполнить перед процедурой SetFTime команду Reset, т.е. открыть файл для чтения.
Необходимость в операциях чтения и изменения даты создания файла может возникнуть, например, при создании программ, контролирующих файлы на заражение вирусами, или при создании резервных копий файлов, которые были созданы за последнее время [1].
Задания
Написать программу на языке Паскаль, позволяющую изменять системную дату.
Написать программу на языке Паскаль, позволяющую считывать и изменять системное время. Текущее время выводить по формату хх:хх:хх.хх. Новое системное время задавать с клавиатуры.
Написать программу, считывающую и изменяющую дату и время создания произвольного файла. Имя файла, а также новые дату и время файла, задавать с клавиатуры.
Лабораторная работа № 2 проверка состояния диска
Модуль DOS в Турбо-Паскаль содержит ряд функций и процедур для работы с диском. С их помощью можно осуществлять контроль наличия свободного пространства на диске, контроль правильности записи на диск, а также определять общий объем памяти диска. Функция:
DiskFree (Drive: BYTE) : LongInt;
возвращает количество свободных байтов на указанном диске, где Drive задает номер диска: 0 – текущий диск, т.е. тот диск, с которого запущена программа; 1 - дисковод А; 2 - дисковод B; 3 - диск С; 4 - диск D и т.д. Если номер диска задан некорректно, то функция возвращает значение -1. Таким образом, всегда есть возможность проконтролировать правильность вызова функции. Функция:
DiskSize (Drive: BYTE) : LongInt;
возвращает общее количество байтов на указанном диске, где Drive задает номер диска. Номер диска задается так же, как и для функции DiskFree (0 – текущий диск; 1 – дисковод А и т.д). Если номер диска задан некорректно, то функция возвращает значение -1.
Процедура GetVerify используется для получения значения флага проверки DOS, имеющего название VERIFY. Этот флаг служит для определения метода записи данных на диск. Если VERIFY находится во включенном состоянии, т.е. он равен ON (истина), то после того, как информация записана на диск, она снова читается и сверяется с оригиналом (verify – «проверять»). Если же флаг находится в выключенном состоянии, т.е. OFF (ложь), то информация записывается на диск без проверки. Существуют различные мнения по поводу того, стоит ли включать данный флаг во время работы, но практика показывает, что винчестер – довольно надежное устройство и информация на него либо записывается хорошо, либо не записывается вовсе. К тому же данная проверка правильности записи сильнее изнашивает винчестер и дисководы (ведь требуется записать, а затем еще и считать) и значительно увеличивает время записи. Поэтому включать этот флаг необходимо, когда ценная информация записывается с винчестера на гибкие диски. Формат процедуры GetVerify следующий:
GetVerify (VAR Verify : Boolean);
Процедура помещает в параметр Verify значение ON или OFF. Если Verify равен ON, происходит проверка правильности записи на все диски, если OFF – информация записывается без проверки [2].
Если возникает необходимость удостовериться в правильности записи важной информации на диск, необходимо включить флаг проверки. Для этого предназначена процедура:
SetVerify (Verify : Boolean);
которая устанавливает или отменяет флаг проверки в зависимости от значения параметра Verify.
