Справочник функций и процедур Delphi: BlockRead

  Навигация по первой букве:

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

  Навигация по категории:

Compiler directives, Directives, Keywords / Types, Variables, Constants / Functions, Procedures

BlockRead
Процедура
Читает блок записей данных из нетипизированного двоичного файла System unit
  procedure BlockRead ( var FileHandle : File; var Buffer; RecordCount : Integer {; var RecordsRead : Integer} ) ;

Delphi Sources

Описание
Процедура BlockRead используется для чтения RecordCount записей данных в Buffer из нетипизированного двоичного файла, данного FileHandle.

Файл, должно быть, был назначен, используя AssignFile и открыт с помощью Reset.

Подпрограмма Reset по умолчанию открывает файл с размером записи равной 128 байт. Этот размер может быть изменён в этой подпрограмме в значение, более полезное для вас (см. пример).

Данные записываются в Buffer (обычно строка или byte массив) из файла. Если recordSize 10 байт, и RecordCount 3, то 3 записи по 10 байт будут занимать 30 байт, взятыми из файла.

Фактический число считанных записей сохраняется в дополнительной переменной RecordsRead. Она будет меньше чем RecordCount, если, например, был достигнут конец файла.
Похожие команды
BlockWrite  Записывает блок записей данных в нетипизированный двоичный файл

File  Определяет типизированный или нетипизированный файл

Read  Позволяет прочитать данные из двоичного или текстового файла

ReadLn  Позволяет прочитать полную строку данных из текстового файла

Reset  Открывает текстовый файл для чтения, или двоичный файл для чтения/записи

Write  Записывает данные в бинарный или текстовый файл

WriteLn  Записывает законченную строку данных в текстовый файл

 
Пример кода : Чтение данных от двоичного файла по одному байту за один раз.
var
  myFile    : File;
  byteArray : array[1..8] of byte;
  oneByte   : byte;
  i, count  : Integer;

begin
  // Попытка открыть файл Test.byt для записи
  AssignFile(myFile, 'Test.byt');
  ReWrite(myFile, 4);   // Определение отдельной 'записи' как 4 байта

  // Заполнение массив данными
  for i := 1 to 8 do
    byteArray[i] := i;

  // Запись данных массива в файл
  BlockWrite(myFile, byteArray, 2);   // Запись 2 'записи' из 4 байт

  //Закрытие файла
  CloseFile(myFile);

  // Повторное открытие файла для чтения
  FileMode := fmOpenRead;
  Reset(myFile, 1);   // Теперь мы определяем одну запись как 1 байт

  // Показ содержимого файла
  // Чтение первых 6 байт. 'count' установлен в
  // текущий считанный номер
  ShowMessage('Чтение первого набора байтов :');
  BlockRead(myFile, byteArray, 6, count);

  // Показ счтанных значений байта
  for i := 1 to count do
    ShowMessage(IntToStr(byteArray[i]));

  // Теперь читаем один байт за один раз и так до конца файла
  ShowMessage('Чтение остающихся байтов :');
  while not Eof(myFile) do
  begin
    BlockRead(myFile, oneByte, 1);   // Чтение одного байта за один раз
    ShowMessage(IntToStr(oneByte));
  end;

  // Закрытие файла в последний раз
  CloseFile(myFile);
end;
Чтение первого набора байтов :
1
2
3
4
5
6
Чтение остающихся байтов :
7
8
 


Последние добавленные на сайт исходники

DeLiKaTeS Tetris (Тетрис)

TDictionary Custom Sort

Fast Watermark Sources

3D Designer

Sik Screen Capture

Patch Maker

 

Айболит (remote control)

ListBox Drag & Drop

Доска для игры Реверси

Графические эффекты

Рисование по маске

Перетаскивание изображений

 

Copyright © 2004-2024 "Delphi Sources" by BrokenByte Software (источник – "DelphiBasics")

Группа ВКонтакте