|
File
Определяет типизированный или нетипизированный файл
-
var UntypedFile : File;
-
var TypedFile : File of some type;
Описание:
Ключевое слово File используется для определения
переменной как двоичного файла, с возможностью записи на/ считывания с
запоминающего устройства.
Версия 1
Задает базовый нетипизированный файл. Такой файл
может быть считан или записан с использованием BlockRead и BlockWrite. Основной
тип данных - байт.
Для получения дескриптора
файла необходимо использовать AssignFile.
Для
открытия файла для чтения и/или записи необходимо использовать Reset или
ReWrite. Они определяют количество байт, которые соответствуют одной "записи" в
подпрограммах BlockRead и BlockWrite.
Версия 2
Задает файл с базовым типом данных. Например,
простой тип данных, такой как char или сложный тип данных, такой как
запись(record).
Для получения дескриптора файла
необходимо использовать AssignFile.
Для
открытия файла для чтения и/или записи необходимо использовать Reset или
ReWrite. При доступе к файлу нужно использовать Read and Write.
Во всех случаях, тип должен быть фиксированного
размера, и доступ к файлу должен осуществляться с помощью блоков этого типа.
Пример кода:
var
myFile : File;
byteArray : array[1..8] of byte;
oneByte :
byte;
i, count : Integer;
begin
// Try
to open the Test.byt file for writing to
AssignFile(myFile,
'Test.byt');
ReWrite(myFile, 4); // Define a single 'record' as
4 bytes
// Fill out the data array
for i
:= 1 to 8 do
byteArray[i] := i;
// Write the data array to the file
BlockWrite(myFile, byteArray, 2); // Write 2 'records' of 4 bytes
// Close the file
CloseFile(myFile);
// Reopen the file for reading
Reset(myFile, 1); // Now we define one record as 1 byte
//
Display the file contents
while not Eof(myFile) do
begin
BlockRead(myFile, oneByte,
1); // Read and display one byte at a time
ShowMessage(IntToStr(oneByte));
end;
//
Close the file for the last time
CloseFile(myFile);
end;
Результат выполнения:
1
2
3
4
5
6
7
8
Пример кода:
var
myWord, myWord1, myWord2 :
Word;
myFile : File of Word;
begin
//
Try to open the Test.bin binary file for writing to
AssignFile(myFile, 'Test.cus');
ReWrite(myFile);
// Write a couple of lines of Word data to the file
myWord1 := 234;
myWord2 := 567;
Write(myFile, myWord1, myWord2);
// Close
the file
CloseFile(myFile);
// Reopen the
file in read only mode
Reset(myFile);
//
Display the file contents
while not Eof(myFile) do
begin
Read(myFile, myWord);
ShowMessage(IntToStr(myWord));
end;
// Close the file for the last time
CloseFile(myFile);
end;
Результат выполнения:
234
567
|
|