Здравствуйте уважаемые программисты. Мне нужна помощь и я очень надеюсь ее тут получить))). От гугла уже тошнит, на яндекс вопросах тоже не помогли). Дело собственно вот в чем. Делаю программу которая на низком уровне (без драйверов) выдирает нужную инфу из 2х дбфок, создает новую и записывает все туда. Структуру дбф3, а мне нужен именно этот тип, вызубрил на зубок. В принципе ничего сложного нет. но вот в чем проблема. Немогу конвертировать переменную int в 16тиричную систему исчисления а потом побитно записать в файл потоком QDataStream. Вот примеры:
QFile dbf1;
QMessageBox *msgBox=new QMessageBox(this);
dbf1.setFileName("d:\\dbf\\izdev.DBF");
if (!dbf1.open(QIODevice::WriteOnly)){
msgBox->setText("File open error!!!!");
msgBox->show();
}
QDataStream newDbf(&dbf1);
QString conv;
unsigned char dbfVersion= 0x03;
unsigned char dbfDay;
unsigned char dbfMonth;
unsigned char dbfYear;
unsigned short int dbfKolZap;
dbfKolZap=3;
dbfDay= dbfInfo.at(3);
dbfMonth = dbfInfo.at(2);
dbfYear = dbfInfo.at(1);
newDbf<<dbfVersion;
newDbf<<dbfYear;
newDbf<<dbfMonth;
newDbf<<dbfDay;
newDbf<<conv.setNum(dbfKolZap,16);
ну это естественно тока процедура записи в файл, переменные которые я считал с прошлого дбф dbfYear, dbfMonth, dbfDay записываются хорошо, именно так как надо. Для пробы присвоил dbfVersion значение вручную 0x03 и она тоже хорошо записалась. а вот newDbf<<conv.setNum(dbfKolZap,16); пишется во первых криво(записывает не в 16тиричной системе а в ASCII(не 03 а 33 пишет) причем еще куча нулевых байт, ну нулевые понятно, qString большая переменная и она записывается полностью не отбрасывая порожняк, + даже еще что-то свое вставляет. Было еще куча жалких попыток это сделать... Помогите плииз, люди добрые, а то уже скоро работу сдавать а я в тупике и не знаю уже что делать, без вас не справлюсь. Жду с нетерпением.