Ассемблер тоже для человека. Избранный только машинный код.
Сообщения от Программирование
Борланд Си плюс-плюс
Какашка.
С практической точки зрения визуал куда более приемлем.
мент, ога, но еси напишешь мне Герои 1 (для начала в машинных командах, не АСМЕ), я приеду и отдам все свои деньги лично)))
Eleondor, но ведь я же человек ;)
Ment, вот) поэтому на асме легче)
кстати, не помню когда и на каком ресурсе, но читал как один реверсер восстанавливал пиратскую(!) кампанию в героях 3, когда был баг при загрузке ресурсов и вылет. Исправил, поиграл)
И дамп там же был героев 3) и разбор механики немного.
кстати, не помню когда и на каком ресурсе, но читал как один реверсер восстанавливал пиратскую(!) кампанию в героях 3, когда был баг при загрузке ресурсов и вылет. Исправил, поиграл)
И дамп там же был героев 3) и разбор механики немного.
Ment, вот) поэтому на асме легче)
Извиняюсь, я весь инет перерыл, только в одном месте нашёл описание проблемы, как у меня и то там абсолютно ничего не посоветовали :( Может тут кто-нибудь сталкивался с подобной фигнёй. Мне нужно на C++ Builder (6) или Pascal Delphi (6) добавить несколько полей в файл dbf (через BDE!!!) и проблема в том, что когда я создаю таблицу dbf вещественные поля имеют только 4 знака после запятой, а мне надо больше :( Я думал, что можно это решить, задавая значение свойства Precision, но нет, там всегда получается только 4 цифры после запятой, в независимости от этого свойства. А если задать свойство Size, то для ftFloat вообще выдаёт ошибку. :( Вобщем создаётся поле размером 20 и 4 цифры после запятой, хоть головой об стену! Что тут делать, как задать точность, может кто знает?
int i;
TTable *Table1=new TTable(this);
TTable *Table2=new TTable(this);
if(Form1->OpenDialog1->Execute())
{
Table1->TableName=OpenDialog1->FileName;
Table1->Active=true;
Table2->TableName="temp.dbf";
Table2->TableType=ttFoxPro;
for(i=0; iFieldCount; i++)
{
Table2->FieldDefs->Add(Table1->FieldDefs->Items->Name, Table1->FieldDefs->Items->DataType, Table1->FieldDefs->Items->Size, Table1->FieldDefs->Items->Required);
if(Table1->FieldDefs->Items->DataType==6)
{
Table2->FieldDefs->Items->Precision=8; // Как я пытаюсь задавать количество цифр после запятой в поле файла dbf, но не фига не получается
}
}
Table2->CreateTable();
Table2->Active=true;
Table1->First();
Table2->First();
while(!Table1->Eof)
{
Table2->Edit();
Table2->Insert();
for(i=0; iFieldCount; i++)
{
Table2->Fields->FieldByName(Table1->FieldDefs->Items->Name)->AsString=Table1->Fields->FieldByName(Table1->FieldDefs->Items->Name)->AsString;
}
Table2->Post();
Table1->Next();
}
Table1->Active=false;
Table2->Active=false;
}
int i;
TTable *Table1=new TTable(this);
TTable *Table2=new TTable(this);
if(Form1->OpenDialog1->Execute())
{
Table1->TableName=OpenDialog1->FileName;
Table1->Active=true;
Table2->TableName="temp.dbf";
Table2->TableType=ttFoxPro;
for(i=0; iFieldCount; i++)
{
Table2->FieldDefs->Add(Table1->FieldDefs->Items->Name, Table1->FieldDefs->Items->DataType, Table1->FieldDefs->Items->Size, Table1->FieldDefs->Items->Required);
if(Table1->FieldDefs->Items->DataType==6)
{
Table2->FieldDefs->Items->Precision=8; // Как я пытаюсь задавать количество цифр после запятой в поле файла dbf, но не фига не получается
}
}
Table2->CreateTable();
Table2->Active=true;
Table1->First();
Table2->First();
while(!Table1->Eof)
{
Table2->Edit();
Table2->Insert();
for(i=0; iFieldCount; i++)
{
Table2->Fields->FieldByName(Table1->FieldDefs->Items->Name)->AsString=Table1->Fields->FieldByName(Table1->FieldDefs->Items->Name)->AsString;
}
Table2->Post();
Table1->Next();
}
Table1->Active=false;
Table2->Active=false;
}
Ой, не занимался базами данных. Хермит, такой вопрос, а целая часть числа у тебя использована полностью, на все эти 20 знаков? Если есть в этом плане запас, можно было бы в целую часть числа записать дополнительные дробные знаки. Кстати, на это уйдёт только один знак: скажем, в самый первый знак записывать, сколько знаков из дробной части переходит в целую (0-9, девяти должно быть довольно), а в прочие уже сами знаки, целые/дробные в зависимости от... Итого будет 19+4=23 знака на целую+дробную часть числа, дробная часть до 13. Но вообще это костыль, конечно.
P.S. Кстати, я только что изобрёл число с плавающей точкой, я гений, тьфу на вас на всех!
P.S. Кстати, я только что изобрёл число с плавающей точкой, я гений, тьфу на вас на всех!
Да этот файл будет потом использоваться для подгрузки в другую чужую программу, так что то, что ты предложил не подходит. Если б я для себя делал, то и вопроса бы не было.
Сформулируй запрос на аглицком и поищи на stackoverflow
Да этот файл будет потом использоваться для подгрузки в другую чужую программу, так что то, что ты предложил не подходит. Если б я для себя делал, то и вопроса бы не было.
Так, ещё одна версия... Все юзают семёрку-Дельфи, может, стоит попробовать? Шестёрка совсем старая. Да, семёрка тоже старая, но там стояли очень мощные средства для работы с дата-базами, это я точно помню. Может, там и свойства апгрейденные.
Ещё кое-что. Думаю, что это сама спецификация дата-базы такая, но их же существует несколько версий... Может, стоит установить модуль более новой версии? Наверняка там это должны были пофиксить. Я думаю.
Более ничего посоветовать не могу, у самого стоит десятка-lite, там вообще дата-баз нет. Хотя мне они и не нужны.
Подправить точно никак? Одна строчка же...
Кроме, как я попытался задать точность больше не знаю способа.
У меня нет её исходных кодов, да мне её и никогда не разрешили бы подправлять. А те кто её делает, они её делают для очень многих учреждений и только из-за нас требования к формату хранения данных в подгружаемых базах никогда бы менять не стали. А у других свои организации, предоставляющие эти базы, - и видимо свои проблемы, которые они наверно решают непосредственно с этими организациями, а не как мы.
Кстати я сейчас решал одну головоломку и по ходу её решения нашел и решение своей проблемы. Ну то есть я конечно и раньше понимал, что надо побайтно редактировать dbf-файл, но теперь я знаю где там находятся байты, которые задают количество цифр после запятой в вещественных числах для полей dbf-файлов!!!
Статистика
Приветствуем новейшего участника:
recijeb