Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
кст LAB7.DOC
Скачиваний:
0
Добавлен:
21.09.2019
Размер:
97.28 Кб
Скачать

Министерство образования и науки украины

Одесская Государственная Академия Холода

Лабораторная работа №7

По дисциплине: «Компьютерная схемотехника»

Тема: «работа с файлами »

Выполнила: студентка гр.526

Кикинчук О.А.

Одесса 2012

Теоретическая часть

Работа с файлами. Подсистема учета размещения информации на устройстве внешней памяти называется файловой системой. От нее зависит, какая единица пространства памяти является наименьшей, могут ли файлы занимать несвязанные участки памяти, как именуются файлы, какими свойствами может обладать файл и какие операции над ним можно производить и т. п. В DOS для дисковых накопителей используется файловая система FAT. Она позволяет разделять дисковое пространство HDD на несколько разделов и организовывать в каждом из разделов иерархическую структуру каталогов, содержащих файлы. Каталог, обычно представляемый в виде именованной совокупности файлов, также по сути является файлом определенной структуры, содержащим список хранящихся в нем файлов. (Для работы с каталогами в DOS имеются специальные функции).

Имя файла (и, соответственно, каталога) может содержать от 1 до 8 символов непосредственно в имени и от 0 до 3 символов — в расширении файла, обычно поясняющем его тип. Имя и расширение отделяются точкой. Суммарная длина имени, таким образом, составляет максимум 12 байт.

DOS поддерживает ряд следующих функций для работы с файлами:

№ в AH

Описание

Вход

Выход

3Сh/5Bh

Создать файл/

новый файл

DS:DX  ASCIIZ-имя файла*;

CX = атрибуты

AX = дескриптор

3Dh

Открыть файл

DS:DX  ASCIIZ-имя файла;

AL = код доступа (0 - чтение,

1 - запись, 2 - чтение/запись)

AX = дескриптор

3Eh

Закрыть файл

BX = дескриптор

3Fh

Читать из файла

BX = дескриптор; CX = число байт;

DS:DX  буфер-приемник

AX = число считанных байт

40h

Писать в файл

BX = дескриптор; CX = число байт;

DS:DX  буфер-источник

AX = число записанных байт

42h

Установить указатель

BX = дескриптор;

CX:DX = сдвиг в байтах;

AL = код метода (сдвиг относи-тельно: 0 - начала файла;

1 – те­кущего положения;

2 - конца файла)

DX:AX = текущее положение указателя относительно начала файла

43h

Получить/уста-новить атрибуты файла

DS:DX  ASCIIZ-имя файла;

AL = 0 - получить, 1 - установить;

CX = новый атрибут (при AL = 1)

CX = текущий атрибут (при AL = 0)

57h

Получить/уста-новить дату и

время создания

AL = 0 - получить, 1 - установить;

BX = дескриптор; CX = новое вре­мя, DX = новая дата (при AL = 1)

CX = время, DX = дата

(при AL = 0)

39h

Создать каталог

DS:DX  ASCIIZ-имя каталога

3Ah

Удалить каталог

DS:DX  ASCIIZ-имя каталога

41h

Удалить файл

DS:DX  ASCIIZ-имя файла

47h

Получить полное имя текущего каталога

DS:SI  буфер для имени (до 64 б);

Dl = номер диска (0 = текущий, 1 = A, 2 = B и т. д.)

полное имя в буфере в формате ASCIIZ

4Eh

Найти первый файл

DS:DX  ASCIIZ-имя/маска;

CX = атрибуты

[DTA+15h] - атрибут;

[DTA+16h] - дата;

[DTA+18h] - время;

[DTA+1Ah] - размер;

[DTA+1Eh] - ASCIIZ-имя

или CF = 1 (не найден)

4Fh

Найти следующий файл

Данные в DTA после предыдущего поиска

56h

Переименовать файл

DS:DX  ASCIIZ-старое имя;

ES:DI  ASCIIZ-новое имя

5Ah

Создать уникальный файл

DS:DX  ASCIIZ – диск:\путь\;

CX = атрибуты

AX = дескриптор;

DS:DX  ASCIIZ - полное имя

*ASCIIZ – '(путь\)имя',0 (если путь не указан, используется текущий каталог).

Все функции в случае ошибки устанавливают CF и возвращают в AX код ошибки:

Hex

Dec

Значение

Hex

Dec

Значение

1

2

3

4

5

6

7

8

9

1

2

3

4

5

6

7

8

9

Неверный номер функции

Файл не найден

Путь не найден

Слишком много открытых файлов

Доступ не разрешен

Неверный дескриптор

Разрушены блоки упр. памятью

Недостаточно памяти

Неверный адрес блока памяти

0Ah

0Bh

0Ch

0Dh

0Eh

0Fh

10h

11h

12h

10

11

12

13

14

15

16

17

18

Неверное окружение

Неверный формат

Неверный код доступа

Неверная дата

(не используется)

Задан неверный диск

Нельзя удалять тек. каталог

Не то устройство

Больше нет искомых файлов

Стандартные дескрипторы:

0 CON - стандартный ввод (клавиатура);

1 CON - стандартный вывод (экран);

2 стандартное устройство ошибок (экран);

3 AUX - асинхронный адаптер (COM1);

4 стандартный принтер (LPT1).

Атрибуты (биты):

a

d

s

v

h

r

a - (archive) архивный;

d - (directory) каталог;

v - (volume) метка тома;

s - (system) системный;

h - (hidden) скрытый;

r - (read only) только для чтения.

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

Начиная с версии 2 в MS-DOS используется дескрипторный метод работы с файлами. При создании или открытии файлу присваивается 16-разрядный двоичный номер, называемый дескриптором (или описателем). В дальнейшем при выполнении операций чтения, записи и других необходимо указывать присвоенный файлу дескриптор.

Имеется пять предопределенных дескрипторов, соответствующих стандартным устройствам ввода-вывода: клавиатуре, экрану и коммуникационным портам. Использование предопределенных дескрипторов позволяет осуществлять ввод-вывод с этими устройствами точно так же, как и с файлами, а также организовывать потоки данных, не зависящие от типа источников и приемников данных.

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