Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PASСAL_a4_2007.doc
Скачиваний:
31
Добавлен:
13.09.2019
Размер:
2.51 Mб
Скачать

2. Процедуры и функции библиотеки dos

Из языка Pascal можно вызывать достаточно много стандартных функций операционной системы. Существует специальная библиотека с именем DOS, которая позволяет выполнять ряд интересных функций. Перечислим некоторые из них.

2.1. Работа с часами и календарем

GetDate(var Year,Month,Day,DW:word); - считывает год (Year), месяц(Month), число (Day) и день недели (DW) во встроенных часах ПЭВМ.

SetDate(Year,Month,Day,DW:word); - устанавливает год (Year), месяц(Month), число (Day) и день недели (DW) во встроенные часы ПЭВМ.

GetTime(var Hour,Min,Sec,Sec100:Word); - считывает текущее время со встроенных часов (Hour - часы, Min - минуты, Sec - секунды, Sec100 - сотые доли секунды).

SetTime(Hour,Min,Sec,Sec100:Word); - устанавливает новое время (Hour - часы, Min - минуты, Sec - секунды, Sec100 - сотые доли секунды).

2.2. Работа с каталогами и файлами

FindFirst(Path:String; Attr:Word; var SR:SearchRec); - находит первое подходящее запросу Path имя с заданными атрибутами Attr.

FindNext(Var SR:SearchRec); - вызывается после FindFirst для нахождения дальнейших подходящих имен;

FSearch(Path:PathStr; DirList:string): PathStr; (функция!) - ищет файл с именем Path в списке каталогов DirList; возвращает полное имя файла.

GetAttr(var f:file; var FA:word); - считывает атрибут FA файла на диске, связанного с f.

SetAttr(var f:file; var FA:word); - устанавливает атрибут FA файлу на диске, связанному с f.

PackTime(vst DT:DateTime; var T:LongInt); - создает компактную запись даты и времени для назначения ее файлу.

UnpackTime(T:LongInt; var DT:DateTime); - распаковывает запись даты и времени, считанную в файле.

GetFTime(var f; var T:LongInt); - считывает компактную запись даты и времени для открытого файла f.

SetFTime(var f; T:LongInt); - записывает компактную запись даты и времени для открытого файла f.

2.3. Типы и константы модуля dos для работы с файлами

Для ввода атрибутов файла или их анализа введены следующие константы:

Const

ReadOnly = $01; {только для чтения}

Hidden = $02; {скрытый файл}

SysFile = $04; {системный (непереносимый)}

VolumeID = $08; {метка диска}

Directory = $10; {Подкаталог}

Archive = $20; {Архивный}

AnyFile = $3F; {сумма всех предыдущих}

При использовании их можно складывать. Так, если Вы хотите сделать файл скрытым ($02) и только для чтения ($01), просто сложите два атрибута: будет $03.

Для процедур FindFirst и FindNext введен тип SearchRec:

Type

SearchRec=Record

Fill:array [1..2] of Byte; {Системное поле}

Attr:Byte; {Поле атрибута}

Time:LongInt; {Время создания файла}

Size:LongInt; {Размер файла в байтах}

Name:String[12] {Полное имя файла}

End;

Для процедур PackTime и UnPackTime используется тип DateTime:

Type

DateTime=Record

Year,Month,Day,Hour,Min,Sec:Word

end;

3. Практика

Задание 1

Скопируйте в свой каталог файл dos_ex1.pas. Запустите среду Turbo Pascal.

Задание 2

Загрузите файл dos_ex1.pas. Разберитесь в том, как работает и что делает данная программа. Модифицируйте программу так, чтобы она выводила список файлов в два столбика; в три столбика; в четыре столбика.

Задание 3*

Разработайте процедуру, которая выведет на экран дисплея список файлов и позволит выбрать требуемый файл (меню файлов).

Задание 4*

Разработайте процедуру - часы, которая, используя встроенный таймер компьютера, показывает текущее время. Реализуйте два варианта процедуры: обычные часы со стрелками и часы с цифровой индикацией (см. приложение Часы в Windows).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]