Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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]

> Мысль к сожалению не ясна&#133

У тебя 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.
Всё это явно претендует на то, чтобы стать ядром системы. :)


> Все равно не понятно к чему это&#133

Зачем мне метод 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]

> но ты не контролируешь делимитер&#133 можно сделать фиксированный
> делимитер, тогда эффект будет тот же, но нужно установить
> его в системе

Во-первых, оно вполне контролируется.
Во-вторых, не можещь контролировать и любишь точку — 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
15-1208864165
vajo
2008-04-22 15:36
2008.06.08
Какие существуют офисные программы для Symbian 9.2?


2-1210658320
voe
2008-05-13 09:58
2008.06.08
парсинг Web


2-1210886447
Johnnnnnn
2008-05-16 01:20
2008.06.08
Динамически создаваемый TWebBrowser событие OnDownloadComplete?


15-1209325537
No_Dead
2008-04-27 23:45
2008.06.08
Есть ли такие проги или это уже ИИ?%>


15-1209503846
i
2008-04-30 01:17
2008.06.08
компилятор Delphi2007 быстрее Delphi7 или нет?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский