методом активного интернет-поиска нашел решение:
X++:
static void Jobik(Args _args)
{
BinData B = new BinData();
array a = new array(types::Enum);
comvariant var1;
;
B.loadFile("c:\\temp\\old_file.dbf");
var1 = b.getVariant();
a=var1.safeArray();
a.value(29,0);
var1.safeArray(a);
b.setVariant(var1);
B.SaveFile("c:\\temp\\new_file.dbf");
}
я считаю что оно не оптимально, т.к. для замены одного байта приходится делать слишком много ненужных операций: загрузка всего файла, копирование его в массив, потом обратно в файл. хотелось бы делать операции как в макросе: прочитал 29й байт, обнулил его и закрыл файл.