Delphi справочник - Форум программистов - Навигация  
 A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z      По первой букве  
System     SysUtils     StrUtils     DateUtils     FileCtrl     ConvUtils     StdConvs     Math     Classes     Dialogs     Types     Variants    ПО Unit   Compiler directives     Directives     Keywords     Types     Variables     Constants     Functions     Procedures    По категории  

форум программистов

Основы Delphi
File
Ключевое слово
Определяет типизированный или нетипизированный файл unit
  
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 должны использоваться для получения доступа к файлу.

Во всех случаях, тип должен иметь установленный размер, и обращения к файлу, должно быть в единицах этого типа.
Примечания
При испольщовании записей, удостоверьтесь, что они Упакованы (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
 


Оплата за обучение в Kata Academy только после твоего трудоустройства в IT, начни карьеру Middle Java-разработчика



Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки? Slurm подготовили для вас особенный продукт!





форум программистов


© Форум Delphi  |  Форум Pascal   |  Блог программистов   |  Исходники Delphi   |  Автор сайта  |  Ссылки   |  Английская версия