Что нового

Изменение признака кодировки DBF файла (заменить байт в бинарном файле)

marky_ua

Новичок
Сообщения
1
Репутация
0
Возникла следующая проблема. Есть DBF-файл создаваемый бух.программой. В этом файле нужно заменить признак кодовой страницы. Нужно заменить 29 байт на число 201.

Пробую сделать это так
Код:
$hFile = FileOpen($flesh & "\J30T405.dbf", 1 + 16)
   FileSetPos($hFile, 29, 0)
   FileWrite($hFile, Binary(201))
   FileClose($hFile)


Но почему-то вместе с 29 байтом меняется еще и 32 байт. Что я делаю не так?


==========================================================================================
Выяснил следующее, FileWrite($hFile, Binary(201)) записывает 4 байта.
Решил проблему следующим образом
Код:
FileWrite($hFile, Binary('0x' & Hex(201,2)))


В архиве пример файла до и после обработки.
 

Вложения

  • dbf.zip
    614 байт · Просмотры: 8

pvnn

Осваивающий
Сообщения
305
Репутация
32
Надо делать так же как и на Fox через CHR()
Параметры страниц в Visual Fox:
00 Zero chr(00)
866 Russian MS-DOS x65 chr(101)
1251 Russian Windows xC9 chr(201)

Код:
$hFile = FileOpen(@ScriptDir & "\J30T405.dbf", 1 + 16)
   FileSetPos($hFile, 29, 0)
   FileWrite($hFile, Chr(201))
   FileClose($hFile)
 
Верх