Разное
Облака / Clouds
The bast cloud service
Get 20 GB free!!!
Support WebDav.
Show more >>
time-tested cloud storage
Support WebDav.
Последние книги
Самое популярное
Все бесплатно
Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.
Навигация
Вопросы
Дата изменения файла
Категория: Файловая система
Категория: Файловая система
Автоматическое определения кодировки текста
Категория: Текст и строки
Категория: Текст и строки
Как показать balloon tooltips в программе
Категория: Приложение
Категория: Приложение
BDE. Создание алиасов
Категория: Базы данных
Категория: Базы данных
Изменить пароль для Paradox
Категория: Базы данных
Категория: Базы данных
Перевод символа в верхний или нижний регистр для русского алфавита
Категория: Текст и строки
Категория: Текст и строки
Определение размера файла
Категория: Файловая система
Категория: Файловая система
Как соединить несколько файлов в один
Категория: Файловая система
Категория: Файловая система
Заполнение компонента TTreeView данными из TDataSet
Категория: Базы данных
Категория: Базы данных
Поиск по EasyTable
Категория: Базы данных
Категория: Базы данных
Delphi - Справочник: BlockRead
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 |