Здесь Disk — номер диска; Sector — номер дискового сектора, с которого начинается запись информации; Count — количество записываемых секторов; Buffer ~ переменная любого типа, содержимое которой требуется записать на диск.
Как и в случае использования процедуры SetFATItem, требуется тщательно проверить параметры обращения к этой процедуре перед запуском программы на счет. Запись в ошибочно указанный сектор может привести к непоправимым последствиям.
3.3.2. Тестовая программа
В следующей программе иллюстрируется применение некоторых из содержащихся в модуле F_Disk подпрограмм. Программа запрашивает имя любого уже существующего на диске текстового файла и осуществляет вывод его содержимого на экран дисплея.
Uses DOS,F_Disk;
var
Name: string;
Text: array [1..512] of Char;
k,j : Word;
N : Word;
DI : TDisk;
Item: Dir Type;
Disk: Byte;
Sec : Word;
begin
GetListDisk(Disks); {Формируем список дисков} repeat
Write('Введите имя файла '+
'(или нажмите Enter для выхода): ');
ReadLn(Name);
if Name <> '' then begin
Name := FExpand(Name); {Полное имя файла} Disk := GetDiskNumber(Name[1]);
GetDiskInfo(Disk,DI) ;
GetDirItem(Name,Item); /Элемент каталога} if not Disk_Error then with Item do begi-n
Sec := GetSector(Disk,FirstC); {Номер 1-го
сектора файла} j := 0; {Количество прочитанных секторов} if not Disk_Error then
repeat {Цикл печати файла} ReadSector(Disk,Sec,1,Text; ;
if Size < 512 then N := Size
else N :° 512;