File

Печать
Рейтинг пользователей: / 1
ХудшийЛучший 

File

Описание

1 var UntypedFile : File;
2 var TypedFile : File of some type;

Ключевое слово File используется для определения переменной как двоичный файл, обычно используемый для записи и чтения из запоминающего устройства.
Версия 1
Дает основной нетипизированный файл. Такой файл может быть прочитан и записан, используя только BlockRead и BlockWrite. Основной тип данных - байт.
Для получения дескриптора файла должен использоваться AssignFile.
Затем должен использоваться Reset или ReWrite, чтобы открыть файл для чтения и/или записи. Они определяют число байтов, которые включают одну 'запись'.
Версия 2
Определяет файл с базированным типом данных. Например, простой тип как символ (char) или сложного типа такой как Запись (Record).
Для получения дескриптора файла должен использоваться AssignFile.
Затем должен использоваться Reset или ReWrite, чтобы открыть файл для чтения и/или записи. Read и Write должны использоваться для получения доступа к файлу.
Во всех случаях, тип должен иметь установленный размер, и обращения к файлу, должно быть в единицах этого типа.

Пример кода

Пример кода : Чтение и запись в нетипизированный бинарный файл

var
myFile    : File;
byteArray : array[1..8] of byte;
oneByte   : byte;
i, count  : Integer;
begin
// Try to open the Test.byt file для чтения
AssignFile(myFile, 'Test.byt');
ReWrite(myFile, 4);   // Определение простой 'записи' из 4 байт
// Заполните массива данных
for i := 1 to 8 do
byteArray[i] := i;
// Запись массива данных в файл
BlockWrite(myFile, byteArray, 2);   // Write 2 'records' of 4 bytes
// Закрытие файла
CloseFile(myFile);
// Повторное открытие файла для чтения
Reset(myFile, 1);   // Теперь мы определяем одну запись как 1 байт
// Показ содержимого файла
while not Eof(myFile) do
begin
BlockRead(myFile, oneByte, 1);   // Теперь мы определяем одну запись как 1 байт
ShowMessage(IntToStr(oneByte));
end;
// Закрытие файла в последний раз
CloseFile(myFile);
end;

1
2
3
4
5
6
7
8

Пример кода : Запись в типизированный бинарный файл

var
myWord, myWord1, myWord2 : Word;
myFile : File of Word;
begin
// Попытка открыть файл Test.bin binary для записи
AssignFile(myFile, 'Test.cus');
ReWrite(myFile);
// Запись нескольких строк данных Word в файл
myWord1 := 234;
myWord2 := 567;
Write(myFile, myWord1, myWord2);
// Закрытие файла
CloseFile(myFile);
// Повторное открытие файла в режиме только для чтения
Reset(myFile);
// Показ содержимого файла
while not Eof(myFile) do
begin
Read(myFile, myWord);
ShowMessage(IntToStr(myWord));
end;
// Закрытие файла в последний раз
CloseFile(myFile);
end;

234
567

Примечание

При испольщовании записей, удостоверьтесь, что они Упакованы (Packed), для предотвращения проблем выравнивания.