Облака / Clouds
    Go to Copy.com
    Copy.com
    The bast cloud service
    Get 20 GB free!!!
    Support WebDav.
    Show more >>

    Go to Dropbox.com
    Dropbox.com
    time-tested cloud storage
    Support WebDav.
Все бесплатно
    Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.



Вопросы
  Дата изменения файла
   Категория: Файловая система
  Автоматическое определения кодировки текста
   Категория: Текст и строки
  Как показать balloon tooltips в программе
   Категория: Приложение
  BDE. Создание алиасов
   Категория: Базы данных
  Изменить пароль для Paradox
   Категория: Базы данных
  Определение размера файла
   Категория: Файловая система
  Как соединить несколько файлов в один
   Категория: Файловая система
  Поиск по EasyTable
   Категория: Базы данных

Delphi - Справочник: BlockRead

ABCDEFGHIJKLMNOPQRSTUVWXYZ

  << Вернуться  

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

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

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

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

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

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

  << Вернуться