Модель файловой системы FAT
End With
End Sub
Макросы нижнего уровня абстракции
Function FreeSize() As Integer 'Функция для определения количества
свободного места в области файлов
FreeSize = 0
temp = 6
While temp < 22 'просмотр области FAT
If Sheets("Sheet").Cells(3; temp).Value = "" Then _
FreeSize = FreeSize + 8 'если ячейка FAT пуста, то
своб.места в ней 8 байт
temp = temp + 1
Wend
End Function
Function NextFreeCellFAT() As Integer 'Функция возвращает номер первого
найденного свободного элемента FAT
NextFreeCellFAT = 1
While NextFreeCellFAT < 17
If Sheets("Sheet").Cells(3; NextFreeCellFAT + 5).Value = "" Then
Exit Function
NextFreeCellFAT = NextFreeCellFAT + 1
Wend
End Function
Sub AddFileToCatalog(File As FileID) 'добавление файла в область каталога
temp = 4
With Sheets("Sheet")
While .Cells(temp; 2) <> ""
temp = temp + 1 'поиск свободного места в каталоге файлов
Wend 'кто дочитает до этого места-бутылка шампанского !
.Cells(temp; 2) = File.Name 'Запись в каталог информации о файле
.Cells(temp; 3) = File.Size
.Cells(temp; 4) = File.First
End With
End Sub
Sub DeleteFileFromCatalog(NameDeletedFile As String) 'удаление информации о
файле из каталога
Position = 4
While Sheets("Sheet").Cells(Position; 2).Text <> NameDeletedFile
Position = Position + 1
Wend
For temp = Position To 16 + 3 'следующие за удаляемым файлом ячейки
сдвигаются, _
затирая запись об удаляемом файле
Sheets("sheet").Range(Cells(temp; 2); Cells(temp; 4)).Value = _
Sheets("sheet").Range(Cells(temp + 1; 2); Cells(temp + 1;
4)).Value
Next
End Sub
Sub ToFAT(NumberCell As Integer; Value As Integer) 'Процедура записи в
заданную ячейку FAT заданного значения
Sheets("Sheet").Cells(3; NumberCell + 5).Value = Value
End Sub
Sub DeleteCellFromFAT(StartCell As Integer) 'рекурсивная функция удаления
цепочки из FAT _
Вызывается с номером точки входа
' MsgBox ("DeleteCellFromFAT, StartCell=" & StartCell)
If Sheets("Sheet").Cells(3; 5 + StartCell).Value = 0 Then 'если в
рассматриваемой точке - 0, _
то это значит, что она является указателем конца файла
Sheets("Sheet").Cells(3; 5 + StartCell) = "" 'и поэтому очищаем эту
ячейку FAT
Else 'в противном случае это указатель на следующую ячейку FAT -
вызываем эту же процедуру
DeleteCellFromFAT (Sheets("sheet").Cells(3; 5 + StartCell).Value)
'но с новым номером ячейки FAT
Sheets("sheet").Cells(3; 5 + StartCell) = "" 'и затем ее очищаем
End If
End Sub
Список литературы, примененной при подготовке курсовой работы.
|Microsoft Systems Journal, Sept 1989. Получен из Computer Library |
|Periodicals, Jan 1990, Doc #14753 |
|Профессиональная работа в MS-DOS, Р.Данкан, Мир, 1993 |
|Excel 5.0 для профессионалов, Н.Николь, Р. Альбрехт, Москва, “Эком”,|
|1996 |
-----------------------
[1] Необходимо заметить, что именно такая структура использовалась в первой
версии MS-DOS.
[2] PressAddFile
PressDeleteFile
PressRemakeFile
DialogRemakePressName
DialogRemakePressOK
Visualisation
[3] AddFile
DeleteFile
Visualisation
Refresh
[4] FreeSize
ToFAT
NextFreeCellFAT
AddFileToCatalog
DeleteCellFromFAT
DeleteFileFromCatalog
| | скачать работу |
Модель файловой системы FAT |