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

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

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

  Реклама:

 

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

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

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

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

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

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

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

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

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

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

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

 
Пример кода : Запись трех 4-байтовых записей в 2-х блочных записей в двоичный файл.
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 байт

  // Заполнение массива данных с различными данными
  for i := 1 to 4 do
    byteArray[i] := i*i;              // Значение : 1, 4, 9, 16

  // Запись только первых 4 элементов из массива данных в файл
  BlockWrite(myFile, byteArray, 1);   // Запись 1 записи из 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]));

  // Now read one byte at a time to the end of the file
  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
1
4
9
16
 


Copyright © 2004-2016 Delphi Sources (источник – "DelphiBasics.ru")
 


Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook