Программирование в среде Delphi. Часть 3. Файлы. Садовская О.Б. - 39 стр.

UptoLike

Составители: 

39
Исходный файл : 14 8 -23 59 0 -18 31 67 24 52 -98 -45 -110
-37 -5 16 0 48 20 7
3.6 Нетипизированные файлы
С точки зрения Object Pascal, нетипизированный файл представля -
ет собой последовательность байтов, содержащих данные произвольно-
го типа и структуры . Основное назначение нетипизированных файлов
обеспечение совместимости с любыми типами файлов и организа -
ция высокоскоростного обмена данными между внешними запоми-
нающими устройствами и оперативной памятью . Описание нетипизи -
рованного файла f имеет вид :
var f : file;
В процедурах reset и rewrite для нетипизированных файлов ука -
зывается дополнительный параметр RecSize, чтобы задать размер за -
писи, используемой при передаче файла :
procedure reset (var f : file {; RecSize : word});
procedure rewrite (var f : file {; RecSize : word});
Если параметр RecSize не указан, то принимаемая по умолчанию
длина записи равна 128 байтам. Длина записи измеряется в байтах и
может быть задана произвольным целым числом от 1 байта до 2
Гбайт . Если задать длину записи, кратную 512 байт , то это позволит
выполнять операции чтения -записи для нетипизированного файла с
максимальной скоростью .
За исключением процедур read и write для нетипизированных
файлов можно использовать все стандартные процедуры , которые до-
пускается использовать для типизированных файлов. Вместо процедур
read и write используются процедуры blockread и blockwrite, позво-
ляющие пересылать данные с высокой скоростью :
procedure blockread( var f : file; var buf; count : integer; {var at : integer});
procedure blockwrite( var f : file; var buf; count : integer; {var at : integer});
Здесь f имя файловой переменной, связанной с нетипизирован-
ным файлом , buf переменная, в которую будут помещаться данные
при чтении из файла или из которой будут извлекаться данные при
записи в файл . Count параметр целого типа , указывающий, какое
                                39
И сход н ый ф а йл: 14 8 -23 59 0 -18 31 67 24 52 -98 -45 -110
-37 -5 16 0 48 20 7




                      3.6 Н етипизированные ф айлы
      С т очки зрен ия Object Pascal, н етипизирова н н ый ф а йл пред ст а вля -
ет соб ой послед ова т ельн ост ь б а йтов, сод ерж а щих д а н н ые произвольн о-
го т ипа и стру кт у ры. Осн овн ое н а зн а чен ие н ет ипизирова н н ых ф а йлов
– об еспечен ие совм естим ости с лю б ым и т ипа м и ф а йлов и орга н иза -
ция высокоскоростн ого об м ен а д а н н ым и м еж д у вн еш н им и за пом и-
н а ю щим и у ст ройства м и и опера т ивн ой па м я т ью . Описа н ие н етипизи-
рова н н ого ф а йла f им еет вид :
                                        var f : file;
      В процед у ра х reset и rewrite д ля н ет ипизирова н н ых ф а йлов у ка -
зыва ется д ополн ительн ый па ра м етр RecSize, чт об ы за д а т ь ра зм ер за -
писи, использу ем ой при перед а че ф а йла :
      procedure reset (var f : file {; RecSize : word});
      procedure rewrite (var f : file {; RecSize : word});
      Е сли па ра м етр RecSize н е у ка за н , то прин им а ем а я по у м олча н ию
д лин а за писи ра вн а 128 б а йт а м . Длин а за писи изм еря ет ся в б а йт а х и
м ож ет б ыт ь за д а н а произвольн ым целым числом – от 1 б а йт а д о 2
Гб а йт. Е сли за д а т ь д лин у за писи, кра т н у ю 512 б а йт, то э т о позволит
выполн я т ь опера ции чтен ия -за писи д ля н ет ипизирова н н ого ф а йла с
м а ксим а льн ой скорост ью .
      За исклю чен ием процед у р read и write д ля н етипизирова н н ых
ф а йлов м ож н о использова т ь все ст а н д а рт н ые процед у ры, кот орые д о-
пу ска ет ся использова т ь д ля т ипизирова н н ых ф а йлов. В м есто процед у р
read и write использу ю т ся процед у ры blockread и blockwrite, позво-
ля ю щие пересыла ть д а н н ые с высокой скорост ью :
procedure blockread( var f : file; var buf; count : integer; {var at : integer});
procedure blockwrite( var f : file; var buf; count : integer; {var at : integer});
      Зд есь f – им я ф а йловой перем ен н ой, свя за н н ой с н ет ипизирова н -
н ым ф а йлом , buf – перем ен н а я , в кот ору ю б у д у т пом еща т ься д а н н ые
при чтен ии из ф а йла или из которой б у д у т извлека т ься д а н н ые при
за писи в ф а йл. Count – па ра м ет р целого т ипа , у ка зыва ю щий, ка кое