- Сообщения
- 3,556
- Репутация
- 628
функция для изменения содержимого бинарного файла
в данном виде работает без ошибок. то есть если просмотреть перезаписанный файл через редактор программатора, то все изменения корректны.
если взять строку, к примеру
и изменить на
то, содержимое файла полностью изменяется. хотя если для проверки поставить сообщение с выводом окончательного результата, то все вроде правильно выводит, но в файл записывает набор цифр..то есть как бы нарушается структура данных в файле(если можно так выразиться). в чем проблема?
Код:
Func _rewrite()
$bin = FileOpen('file.bin', 16)
$read = FileRead($bin)
FileClose($bin)
$result1 = StringReplace($read, 110, StringLeft(@HOUR, 1))
$result2 = StringReplace($result1, 112, StringRight(@HOUR, 1))
$result3 = StringReplace($result2, 114, StringLeft(@MIN, 1))
$result4 = StringReplace($result3, 116, StringRight(@MIN, 1))
$result5 = StringReplace($result4, 118, StringLeft(@SEC, 1))
$result6 = StringReplace($result5, 120, StringRight(@SEC, 1))
$result7 = StringReplace($result6, 122, StringLeft(@MDAY, 1))
$result8 = StringReplace($result7, 124, StringRight(@MDAY, 1))
$result9 = StringReplace($result8, 126, StringLeft(@MON, 1))
$result_over = StringReplace($result9, 128, StringRight(@MON, 1))
$write = FileOpen('file.bin', 2 + 16)
FileWrite($write, $result_over)
FileClose($write)
EndFunc
в данном виде работает без ошибок. то есть если просмотреть перезаписанный файл через редактор программатора, то все изменения корректны.
если взять строку, к примеру
Код:
$result9 = StringReplace($result8, 126, StringLeft(@MON, 1))
и изменить на
Код:
$result9 = StringReplace($result8, 126, '.');вместо цифры использовать точку
то, содержимое файла полностью изменяется. хотя если для проверки поставить сообщение с выводом окончательного результата, то все вроде правильно выводит, но в файл записывает набор цифр..то есть как бы нарушается структура данных в файле(если можно так выразиться). в чем проблема?