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



Вопросы
  Как нарисовать календарь
   Категория: Текст и строки
  Как соединить несколько файлов в один
   Категория: Файловая система
  Шифрование текста по паролю
   Категория: Текст и строки
  Как нарисовать фрактал
   Категория: Математика
  Упаковка ZIPTV
   Категория: Компоненты
  Что значит Paramstr
   Категория: Приложение
  Подсчет времени какого-либо события
   Категория: Математика
  Как получить код HTM страницы зная ее URL
   Категория: Интернет и Сети
  Подсчитать количество слов в строке
   Категория: Текст и строки
  Компоненты ToolBar и PageScroller
   Категория: Компоненты

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

ABCDEFGHIJKLMNOPQRSTUVWXYZ

  << Вернуться  

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

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

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

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

Фактический число записанных записей сохраняется в дополнительной переменной RecordsWritten. Она будет меньше чем RecordCount, если, например, заполнился жесткий диск.
Пример кода: Запись трех 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

  << Вернуться