Форум: "Прочее";
Текущий архив: 2008.06.08;
Скачать: [xml.tar.bz2];
ВнизКак сделать свой проект Найти похожие ветки
← →
MM_ASH (2008-04-24 00:01) [0]Привет! Хочу спросить совета умных людей. Есть мысль сделать небольшой проект библиотеки классов для разработки ядра систем баз данных и пр. систем. Хотелось бы узнать во-первых ваше провессиональное мнение вот об этом: http://www.icore.net.ua/download/iXCore.rar, а во-вторых совета в плане что за чем делать, если это интересно, для того что бы люди смогли этим пользоваться (бесплатно конечно же ), и смогли принимать участие в дальнейшем в развитии данного проекта.
(Заранее большое спасибо и прошу не считать этот линк спамом :-) )
← →
@!!ex_ (2008-04-24 00:09) [1]
> Хотелось бы узнать во-первых ваше провессиональное мнение
> вот об этом: http://www.icore.net.ua/download/iXCore.rar,
Че это?
Может хоть какой нить коммент, что это такое и зачем нужно? Скриншоты?
Не у всех есть дельфя, чтобы это откомпилировать.
← →
Petr V. Abramov © (2008-04-24 00:10) [2]есть смысл, если есть понимание, что даже с бесплатными продуктами конкурировать будет ОЧЕНЬ сложно.
← →
jack128 © (2008-04-24 00:43) [3]
> что это такое и зачем нужно?
ну судя по
> библиотеки классов для разработки ядра систем баз данных
это некий маппер данных БД на объекты для дельфи...
← →
Котик Б (2008-04-24 09:21) [4]У людей, у которых есть мысль сделать небольшой проект библиотеки классов для разработки ядра систем баз данных вопросов как сделать свой проект возникать не должно ;)
← →
MM_ASH (2008-04-24 09:31) [5]>>jack128
Нет это не мапер, это в первую очередь быстрые хеши и варианты.
>>@!!ex_
Если у кого нет делфи... то он врядле сможет понять о чем идет речь :-)
>>Petr V. Abramov
Я вовсе не намерен конкурировать, это просто бесплатная библиотека, в которой есть много, как мне кажется, интересных идей.. с кем тут конкурировать с FastMM что ли :-) ?
>>Котик Б
Да сама библиотека то есть уже.. что дальше делать вот вопрос..
← →
ЮЮ © (2008-04-24 10:42) [6]Если мои объекты вместо Variant-oв стAнут юзать объеты TiX_Variant, то их ещё и создавать надо бы.
Так что твой FastTest() некорректен, ибо использует всего 2 объекта на все циклы итерации, а стоит перенести
A := iX_VInt(1);
B := iX_VInt(2);
в цикл, и налицо «в три раза медленнее», а не «в 10 раз быстрее»
← →
ЮЮ © (2008-04-24 11:11) [7]function TiX_Variant_Double.IsEqual(AValue: IVar): Boolean;
begin
Result := (AValue.VariantType() = vtDbl) and (FValue = AValue.AsDbl);
end;
А почему бы не считать равными 1.0 и 1 ?
function ix_FloatFromVar(AVariant: Variant): Double;
begin
try
case TVarData(AVariant).VType of
varSingle, varDouble, varCurrency, varBoolean, varSmallInt, varInteger,
varShortInt, varByte, varWord, varLongWord, varInt64: Result := AVariant;
varOleStr, varString: Result := StrToFloat(StringReplace(AVariant,",",".",[]));
else
Result := 0;
end
except
Result := 0;
end;
end;
А такому место не в ядре, а в мусорном ведре.
← →
MM_ASH (2008-04-24 11:20) [8]>>ЮЮ
>>Так что твой FastTest() некорректен
Тест корректен, в нем проверяется наиболее частая операция, связанная с динамическим приведением типов, создание вариантов, это уже вопрос второй :-)
> function TiX_Variant_Double.IsEqual(AValue: IVar): Boolean;
>
> begin
> Result := (AValue.VariantType() = vtDbl) and (FValue =
> AValue.AsDbl);
> end;
>
> А почему бы не считать равными 1.0 и 1 ?
Мысль к сожалению не ясна..
> except
> Result := 0;
> end;
Согласен не красиво, какие у Вас предложения по этому поводу? Поднимать эксепшин смысла как я считаю нет, потому как это простое приведение типов..
> StrToFloat(StringReplace(AVariant,",",".",[]));
можно заменить вариантом для бедных StrToFloat(AVariant) :-)
← →
ЮЮ © (2008-04-24 11:45) [9]> Мысль к сожалению не ясна…
У тебя Double единица может быть равна только Double единице, но не может быть равна ни Extended единице, ни Integer единице.
> Поднимать эксепшин смысла как я считаю нет, потому как
> это простое приведение типов
Да? А если у меня там строка "один" как то некорректро она приводит
И почему ты решил, что точка для StrToFloat роднее, чем запятая или другой разделитель целой и дробной части?
← →
MM_ASH (2008-04-24 12:00) [10]>>ЮЮ
>У тебя Double единица может быть равна только Double единице, но не может быть равна ни Extended единице, ни Integer единице.
Все равно не понятно к чему это..
>Да? А если у меня там строка "один" как то некорректро она приводит
если там строка с неприводимыми символами то будет 0, это уже лишнее
>И почему ты решил, что точка для StrToFloat роднее, чем запятая или другой разделитель целой и дробной части?
Потому что в утилитах есть функция которая ставит точку в качестве делимитера
← →
ЮЮ © (2008-04-24 12:16) [11]> Потому что в утилитах есть функция которая ставит точку
> в качестве делимитера
Железная логика :)
iX_VStr(FloatToStr(3.5)) при DecimalSeparator "," создаст строку "3,5"
а «простое приведение типов» ix_FloatFromVar(iX_VStr(FloatToStr(3.5))) вернет мне 0.
Всё это явно претендует на то, чтобы стать ядром системы. :)
> Все равно не понятно к чему это…
Зачем мне метод IsEqual если
X.IsEqual(Y) = true только тогла, когда типы X и Y совпадают?
почему X.asExt = Y.asExt, но при этом X.IsEqual(Y) = false? Или IsEqual имеет какой то особый смысл?
← →
MM_ASH (2008-04-24 12:30) [12]
> iX_VStr(FloatToStr(3.5)) при DecimalSeparator "," создаст
> строку "3,5"
> а «простое приведение типов» ix_FloatFromVar(iX_VStr(FloatToStr(3.
> 5))) вернет мне 0.
> Всё это явно претендует на то, чтобы стать ядром системы.
> :)
Это похоже на критику, но не похоже на конструктивную :-)
Что именно ты предлогаешь с этим сделать? Можно убрать все привязки к делимитерам, тогда все будет просто, но ты не контролируешь делимитер.. можно сделать фиксированный делимитер, тогда эффект будет тот же, но нужно установить его в системе... Тебе просто не нравится или ты пытаешся что-то этим сказать? :-)
> Зачем мне метод IsEqual если
> X.IsEqual(Y) = true только тогла, когда типы X и Y совпадают?
>
> почему X.asExt = Y.asExt, но при этом X.IsEqual(Y) = false?
> Или IsEqual имеет какой то особый смысл?
Это ты верно отметил :-)
Можно и так и так, смысл IsEqual в том, что бы проверить не только тип но и значение, к тому же можно проверить значения не зная типа... то, о чем ты говоришь справедливо только для чисел, и если тебе критично проверить значение Int на эквивалентность значению Dbl, то делай X.asExt = Y.asExt..
← →
ЮЮ © (2008-04-24 12:50) [13]> но ты не контролируешь делимитер… можно сделать фиксированный
> делимитер, тогда эффект будет тот же, но нужно установить
> его в системе
Во-первых, оно вполне контролируется.
Во-вторых, не можещь контролировать и любишь точку — Val тебе в руки
← →
MM_ASH (2008-04-24 12:56) [14]>>ЮЮ
Это все хорошо.. и большое спасибо за то что нашел спорные места в коде..
но что по сабжу то?
← →
ЮЮ © (2008-04-25 04:47) [15]По сабжу — ядро системы уже имеется, развивается не один год. Однако использовать класс вместо Variant — такая мысль и в голову не приходила, а учитыая [6] — и не придет. :)
А надичие кучи наследников от TiX_Variant вообше непонятно к чему.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2008.06.08;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.047 c