- •Лабораторная работа № 1 работа с датой и временем системы
- •Процедуры работы с датой и временем системы
- •Процедуры работы с датой и временем создания/модификации файла
- •Задания
- •Лабораторная работа № 2 проверка состояния диска
- •Задания
- •Лабораторная работа № 3 работа с файлами: поиск
- •Примеры:
- •Задания
- •Лабораторная работа № 4 работа с файлами: просмотр и изменение атрибутов
- •Задания
- •Лабораторная работа № 5 управление операционной средой в ос windows 2000. Переменные Окружения
- •Задания
- •Лабораторная работа № 6
- •Прерывания и исключения. Физическая структура
- •Диска. Программное обслуживание прерываний
- •Типы прерываний и исключений
- •Физическая структура диска
- •Программный вызов диспетчера функций
- •Многие функции устанавливают текущий флаг процессора и возвращают код ошибки в регистре ax, если в процессе обращения к функции произошла ошибка. Из специальных таблиц можно узнать причину ошибки.
- •Функции dos для получения информации о системе
- •Задания
- •Лабораторная работа № 7 планирование исполнения процессов с помощью алгоритма sjf
- •Задания
- •Лабораторная работа № 8 Шифрование сообщений методом rsa
- •Задание
- •Лабораторная работа № 9 Работа с системным реестром в ос Windows nt/2000
- •Структура реестра
- •Хранение данных реестра
- •Редакторы реестра
- •Задания
- •Лабораторная работа № 10 работа с программой «Диспетчер задач»
- •Запуск диспетчера задач
- •Мониторинг процессов
- •Ошибки страницы - число прерываний, которые возникают, когда приложение пытается прочитать или записать данные в несуществующую виртуальную память.
- •Выбор процессора
- •Скорость обновления
- •Мониторинг производительности системы
- •Задания
- •Запустите на выполнение приложение ms Excel.
- •Измените приоритет запущенного приложения.
- •Литература
- •Содержание
Задания
Написать программу на языке Паскаль для вывода на экран общего, свободного и занятого дискового пространства для произвольного логического диска (в Мб); для дискеты (в Кб). Диск задавать с клавиатуры. Рассчитать и вывести на экран суммарный объем использованного и неиспользованного дискового пространства компьютера.
Написать программу на языке Паскаль для вывода на экран текущего значения флага проверки DOS verify и изменения его значения на противоположное.
Лабораторная работа № 3 работа с файлами: поиск
Для работы с файлами в модуле Dos определены следующие процедуры и функции:
функция FExpand - дополнение имени файла до полного значения (текущий путь, имя, расширение);
функция FSearch - поиск файла в списке каталогов;
процедура FindFirst - поиск первого файла с заданным именем и атрибутами;
процедура FindNext - поиск следующего файла с заданным именем и атрибутами;
процедура FSplit - разбиение полного имени файла на составные части (путь, имя, расширение);
процедура GetFAttr - получение текущих атрибутов файла;
процедура SetFAttr - задание новых атрибутов файла.
Работа с файлами в Турбо Паскаль приводит к необходимости использования терминологии и средств MS-DOS. Иногда возникает необходимость поиска файлов с одинаковым именем, поиска по шаблону, выделения нужного файла из найденной группы файлов.
Процедуры FSplit, FExpand, FSearch, FindFirst, FindNext упрощают решение этих задач.
Пусть необходимо определить имена всех файлов с расширением .PAS, которые находятся в определенном каталоге. Для этого используются следующие процедуры:
FindFirst (Path: STRING; Attr: WORD; VAR S: SearchRec);
FindNext (VAR S: SearchRec);
где Path — путь и имя для поиска; Attr — задаваемые атрибуты файла; S — переменная типа SearchRec, который описан ниже.
Процедура FindFirst ищет первый файл с заданным именем и набором атрибутов в указанном каталоге. Процедура FindNext ищет следующий файл с атрибутами, заданными при вызове FindFirst, если имя было задано шаблоном.
Обе эти процедуры используют переменную типа SearchRec для просмотра каталога. Информация о каждом файле, найденная FindFirst или FindNext, возвращается в переменной этого типа.
Тип SearchRec описан в модуле Dos следующим образом:
TYPE
SearchRec = RECORD
Fill: ARRAY [1..21] OF BYTE;
Attr: BYTE;
Time: LongInt;
Size: LongInt;
Name: STRING [12];
END;
Поле Attr содержит атрибуты файла, которые определяются константами атрибутов файла, описанными в модуле Dos (табл. 1). Поле Time содержит дату и время создания файла в упакованном виде (для распаковки необходимо использовать процедуру UnpackTime). Поле Size содержит размер файла в байтах. Поле Name содержит имя найденного файла. Поле Fill содержит служебную информацию MS-DOS и не должно модифицироваться [1-2].
Константы атрибутов файла могут принимать следующие значения:
Таблица 1
-
Название
Значение
ReadOnly (только для чтения)
$01
Hidden (скрытый )
$02
SysFile (системный)
$04
VolumeID (заголовок тома)
$08
Directory (каталог)
$10
Archive (архивный)
$20
AnyFile (любой файл)
$3F
Если в параметре Path не указан путь, а приведено только имя файла или шаблон, то поиск будет осуществляться в текущем каталоге. Например:
FindFirst (‘*.PAS’, AnyFile, S);
Если же надо искать файл в другом каталоге, то в параметре Path указывается путь к нужному каталогу.
Процедура FindNext ищет следующий файл с именем и атрибутами, заданными при вызове FindFirst, если имя файла было задано шаблоном. Если FindNext не находит больше файлов, в системной переменной DosError устанавливается значение 18. В случае успешного завершения переменная DosError будет содержать 0.
Процедуры FindFirst и FindNext при поиске файла (группы файлов) просматривают только указанный каталог. Если же возникает необходимость поиска в различных каталогах, то используется функция FSearch. Функция имеет формат:
FSearch (path: PathStr; DirList: STRING) : PathStr;
где Path — путь и имя файла, который необходимо найти. Тип PathStr описан в модуле Dos, как строковый тип STRING[79]. DirList - список каталогов, в которых будет проводиться поиск. Каталоги в списке должны быть разделены символом «;» аналогично тому, как это делается в команде MS-DOS PATH.
Поиск всегда начинается с текущего каталога текущего диска. В случае удачного поиска функция возвращает строку, в которой содержится полное имя файла (путь и имя). В случае неудачи возвращается пустая строка.
