Что нового

[Файловая система] Как записать байты в середину файла с помощью FileSetPos?

ohos

Новичок
Сообщения
47
Репутация
0
Привет,

как записывать байты в произвольную часть файла при открытии в бинарном режиме (17 ака бинарный 16 + 1 запись)? Например записать в пятый байт 5, а в седьмой F. После использования FileSetPos с указанием нужного номера байта в файле, FileWrite все равно пишет байты в конец файла... :scratch:
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
А каким образом вы пытаетесь записать в файл?


Добавлено:
Сообщение автоматически объединено:

Код:
$hFile = FileOpen('...', 17)
FileSetPos($hFile, 5, 0)
FileWrite($hFile, Binary('0x05'))
FileSetPos($hFile, 7, 0)
FileWrite($hFile, Binary('0x0F'))
FileClose($hFile)
 
Автор
O

ohos

Новичок
Сообщения
47
Репутация
0
Да, все получилось, проблема была в том, что FileSetPot отсчитывает по два байта сразу, а не по одному. Поэтому в файле из 16 байт, FileSetPot с 8 ставил указатель в конец файла.

p.s. либо я не правильно воспринимаю понятие байта, мне показалось что он и есть шестнадцатеричное число от 0 до F :IL_AutoIt_1:
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
ohos [?]
либо я не правильно воспринимаю понятие байта
так и есть – неправильно. байт это диапазон 0x00-0xFF. в десятичном представлении числа от 0 до 255, т.к. байт это 8 бит, то диапазон варьируется в пределах 20-28-1
 
Верх