Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Установка режима бинарного файла

Delphi , Файловая система , Файлы

Установка режима бинарного файла

Автор: Steve

Попробуйте вызвать приведенную ниже процедуру немедленно после перезаписи выходного файла и перед началом записи в него:


procedure SetBinaryMode(var F: file); assembler;
asm
  mov ax,$4400
  les di,F
  mov bx,word ptr es:[di]
  int $21
  or dl,$20
  xor dh,dh
  mov ax,$4401
  int $21
end;

Here's the translation into Russian:

Процедура SetBinaryMode! Это процедура ассемблерного языка, которая устанавливает бинарный режим для файла. При вызове она изменяет атрибуты файла, чтобы позволить запись бинарных данных в него.

Давайте разберемся, что делает каждая строка:

  1. asm: Это директива, которая сообщает компилятору, что следующий код написан на ассемблерном языке.
  2. mov ax,$4400: Перемещаем значение $4400 (которое представляет собой атрибут файла "нормальный" + "бинарный") в регистр AX.
  3. les di, F: Загружаем эффективную адресацию памяти переменной F в регистр DI.
  4. mov bx, word ptr es:[di]: Перемещаем содержимое памяти, указанное ES:DI (которое является handle файла), в регистр BX.
  5. int $21: Вызываем прерывание операционной системы (в этом случае DOS).
  6. or dl,$20: Выполняем битовый оператор OR для DL с 0x20 (флаг бинарного режима). Это устанавливает бинарный режим для файла.
  7. xor dh,dh: Очищаем регистр DH (не знаю почему, но это, вероятно, остаток из более старой версии кода).
  8. mov ax,$4401: Перемещаем значение $4401 (которое представляет собой атрибут файла "бинарный") в регистр AX.
  9. int $21: Вызываем еще одно прерывание операционной системы.

Когда вы вызываете эту процедуру, она устанавливает бинарный режим для файла, изменяя его атрибуты с помощью API DOS.

Альтернативное решение: Если вы ищете альтернативное решение, которое более портативно и не зависит от ассемблерного языка, вы можете использовать функцию Mode из модуля IOUtils в Delphi или Free Pascal. Вот пример:

procedure SetBinaryMode(F: file);
begin
  FileMode(F, fmBinText);
end;

Это код устанавливает режим файла на бинарный текстовый режим с помощью функции FileMode. Это более современное и платформо-независимое решение для установки режима файла.

Установка режима бинарного файла с помощью процедуры SetBinaryMode, которая изменяет кодировку файла на бинарную, позволяет записывать в файл без преобразования символов в кодовую страницу.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Файлы ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-19 17:53:24
2024-05-19 19:12:45/0.0063579082489014/2