![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Set of 0.255
flaxe © (2006-08-05 16:12:00)Вопрос такой: set может иметь максимум 256 значений, что можно использовать взамен, чтобы количество значений было больше(Мне нужно 900), но тип set оставался?
jack128 (2006-08-07 17:21:00) [1]Суслик © (06.08.06 1:56) [8]
Так это можно delphi2006 начать использовать и перегрузить операторы (там, правда, тоже глюков достаточно, но перегрузка в своей базе вроде работает неплохо).
"глюков достаточно" - это слабо сказано. advanced records нормально работают, только при использовании временных переменых
var
TempRec: TMyRecord;
begin
TempRec := SameObj.FunctionReturnsRecord();
TempRec.SameMethodOrCalculateProp...
end;
не дай бог что нить сложнее - internal error. Тоже касается рекорд хелперов. Грусно, если чесно на это смотреть.. :-(
evvcom (2006-08-07 16:58:00) [2]> [10] StriderMan © (07.08.06 15:46)
Чтобы жизнь медом не казалась :)
StriderMan (2006-08-07 15:46:00) [3]а можно поинтересоваться зачем такой длинный SET?
Германн (2006-08-06 02:13:00) [4]
> Суслик © (06.08.06 01:54) [7]
>
> почему не надо?
> многие конфетки от дельфи обарачиваются не всегда адекватной
> семантикой.
> если тебе надо 900 вариатов множества, то вполне можно обойтись
> своим классом, семантика коего тебе ясна от и до. не да
> - не понятно, с контролем времени жизни этого класса. ну
> сделай статический класс со статическими же методами для
> обработки сета.
>
Я сделал именно это. Но у меня не было другог выхода! (Д4)
Но я при этом не "забил" на set.
Суслик (2006-08-06 01:56:00) [5]2автору
А зачем тебе, чтобы set оставался?
Конструкцию "in" использвоать? Так ее методом можно заменить.
Или "+" в множество делать? Так это можно delphi2006 начать использовать и перегрузить операторы (там, правда, тоже глюков достаточно, но перегрузка в своей базе вроде работает неплохо).
В чем еще достоинства set'ов?
Суслик (2006-08-06 01:54:00) [6]почему не надо?
многие конфетки от дельфи обарачиваются не всегда адекватной семантикой.
если тебе надо 900 вариатов множества, то вполне можно обойтись своим классом, семантика коего тебе ясна от и до. не да - не понятно, с контролем времени жизни этого класса. ну сделай статический класс со статическими же методами для обработки сета.
Германн (2006-08-06 01:27:00) [7]
> Суслик © (06.08.06 01:06) [5]
>
> да забей ты на set, напиши свой класс - все понятнее семантика
> будет
>
Не надо таких советов! Не хочу с тобой ссориться! :-)
Суслик (2006-08-06 01:06:00) [8]да забей ты на set, напиши свой класс - все понятнее семантика будет
RzCoDer (2006-08-05 21:02:00) [9]гг) что то знакомое
смотреть тут http://forum.mirgames.ru/index.php?s=&showtopic=1604&view=findpost&p=20558
собсна со 108 сообщения и далее до публикации ответов
flaxe (2006-08-05 20:17:00) [10]мда....
Rial (2006-08-05 16:19:00) [11]Взамен можно использовать свой Set. ))
(A in B) = ((B and A) = A);
(A + B) = (A or B);
(A - B) = (A xor B);
Причем тогда в Byte влезет 8 значений.
Что делать с бо'льшими числами - следует подумать.
Можно использовать
Array of Cardinal нужного размера.
Anatoly Podgoretsky (2006-08-05 16:16:00) [12]Множества ограничены 256 элементами, расширить это нельзя, только самому реализовать свои множества. Наиболее близкое TBits