Чтение Бинарных Файлов в Delphi: Аналог fopen с Режимом "rb"
Когда дело доходит до работы с бинарными файлами в Delphi, разработчики часто сталкиваются с необходимостью открыть файл в режиме, аналогичном C-функции fopen(filename, "rb"). В этом руководстве мы рассмотрим несколько способов, как это можно сделать.
Использование потока файла
Один из наиболее распространённых способов чтения бинарных файлов в Delphi - использование TFileStream. Этот класс позволяет открыть файл в режиме чтения и затем работать с его содержимым как с потоком байтов.
var
Stream: TFileStream;
Value: Integer;
begin
Stream := TFileStream.Create('c:\some\path\to\binaryfile', fmOpenRead or fmShareDenyWrite);
try
Stream.ReadBuffer(Value, SizeOf(Value)); // Чтение 4-байтового целого числа
finally
Stream.Free;
end;
end;
Использование читателя
Для упрощения процесса чтения значений из бинарного файла можно использовать TBinaryReader. Этот класс предоставляет удобные функции для работы с различными типами данных.
var
Stream: TFileStream;
Reader: TBinaryReader;
Value: Integer;
begin
Stream := TFileStream.Create('c:\some\path\to\binaryfile', fmOpenRead or fmShareDenyWrite);
try
Reader := TBinaryReader.Create(Stream);
try
Value := Reader.ReadInteger; // Чтение целочисленного значения
finally
Reader.Free;
end;
finally
Stream.Free;
end;
end;
Старый стиль ввода-вывода на Pascal
Существует также устаревший способ работы с файлами, который включает в себя использование переменных типа File и функций, таких как AssignFile, BlockRead и т.д. Этот метод не рекомендуется для использования в современном коде, так как он может усложнить интеграцию с другими библиотеками и не поддерживает столь же удобный и гибкий подход, как потоки файлов.
Заключение
При работе с бинарными файлами в Delphi предпочтительнее использовать TFileStream и TBinaryReader. Эти классы обеспечивают мощные и удобные инструменты для чтения и записи данных в различных форматах. Старый стиль ввода-вывода на Pascal, хотя и может быть использован, но он менее предпочтителен для новых проектов из-за своей ограниченности и устаревшего подхода.
Не забудьте также, что функции FileOpen(), FileRead(), и FileClose() используются внутри TFileStream, но современный код обычно предпочитает более прямой и понятный подход, предоставляемый потоками файлов.
Указание способов чтения бинарных файлов в Delphi с использованием `TFileStream` и `TBinaryReader`, аналогично функции `fopen` с режимом `'rb'` в C.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.