Описание |
Ключевое слово File используется для определения переменной как двоичный файл, обычно используемый для записи и чтения из запоминающего устройства.
Версия 1
Дает основной нетипизированный файл. Такой файл может быть прочитан и записан, используя только BlockRead и BlockWrite. Основной тип данных - байт.
Для получения дескриптора файла должен использоваться AssignFile.
Затем должен использоваться Reset или ReWrite, чтобы открыть файл для чтения и/или записи. Они определяют число байтов, которые включают одну 'запись'.
Версия 2
Определяет файл с базированным типом данных. Например, простой тип как символ (char) или сложного типа такой как Запись (Record).
Для получения дескриптора файла должен использоваться AssignFile.
Затем должен использоваться Reset или ReWrite, чтобы открыть файл для чтения и/или записи. Read и Write должны использоваться для получения доступа к файлу.
Во всех случаях, тип должен иметь установленный размер, и обращения к файлу, должно быть в единицах этого типа.
|
|
Примечания |
При испольщовании записей, удостоверьтесь, что они Упакованы (Packed), для предотвращения проблем выравнивания.
|
|
Похожие команды |
Append Открывает текстовый файл, для добавления записей в файл (добавляет в конец файла)
AssignFile Связывает дескриптор файла с бинарным или текстовым файлом
CloseFile Закрывает открытый файл
Reset Открывает текстовый файл для чтения, или двоичный файл для чтения/записи
ReWrite Открывает текстовый или двоичный файл для записи
TextFile Объявляет типа файл для того, чтобы сохранить строки текста
| |
|
Пример кода : Чтение и запись в нетипизированный бинарный файл |
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
|
|