Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.21;
Скачать: CL | DM;

Вниз

множества   Найти похожие ветки 

 
Rel_   (2003-07-08 10:05) [0]

как мне правильно объявить массив множеств строк, например:

mas =
[
("01", "02"),
("33", "42", "11", ..),
...
("21", "02"),
]


 
Rel_   (2003-07-08 10:08) [1]

просто мне хочется применить слю цикл:

for i:=0 to 7 do begin
if _qry.FieldByName("r").AsString in mas[i] then ...
break;
end;


 
Radionov Alexey ©   (2003-07-08 10:09) [2]

Никак. Только перечислимые типы (byte в том числе) допускают множественное представление.


 
Q   (2003-07-08 10:09) [3]

A set is a collection of values of the same ordinal type


 
Anatoly Podgoretsky ©   (2003-07-08 10:11) [4]

F1 + index (Sets) или букварь по Паскалю


 
Radionov Alexey ©   (2003-07-08 10:12) [5]

>Rel_
Поступить можно несколько проще, если склеить строки-шаблоны (сделать конкатенацию, причем обозначив начало и конец строки какими-либо спецсимволами) а проверку на вхождение производить с помощью pos


 
Sandman25 ©   (2003-07-08 10:19) [6]

type
MySet = set of byte;
const
Arr: array[0..1] of MySet = ([1,2],[33,42,11]);
var
I, J: Byte;
begin
J := 11;
for I := Low(Arr) to High(Arr) do
if J in Arr[I] then
...
end;


 
Rel_   (2003-07-08 10:22) [7]

to Anatoly Podgoretsky ©

энто конечно понятно - букварь. вот толко что-то не получается.
по F1 ничего вразумительного, а букваря под рукой нет.


я написал след: -- ругается с первой строки.

TRSet = set of string;
...

var mas : array[1..7] of TRSet

...

procedure init;
begin
mas[1]:= ["01", "33" ....];
mas[2]:= ... ;

...

end;




 
Rel_   (2003-07-08 10:23) [8]

to Sandman25

вот !!!, но только со стрингом!!!


 
Radionov Alexey ©   (2003-07-08 10:27) [9]

>Rel_ (08.07.03 10:23)
Дался тебе этот стринг!
Нельзя делать множества из строчек!
Если именно со строками нужно работать - делай контекстный поиск. Я уже писал примерно как оно будет выглядеть.

Ежели ехать дальше - то опять-таки алгоритмы бинарного поиска в отсортированном (естественно) массиве строк.

В крайнем случае - tStringList


 
Anatoly Podgoretsky ©   (2003-07-08 10:28) [10]

Rel_ (08.07.03 10:22)
То есть как это не получается, я же тебе прямо указал тему в справке, искать через индекс. Там указано какие могут быть множества, их мощность, в общем полная информация по множествам, включая возможные операции над множествами.
Если у тебя нет справки, то самое время ее установить.


 
Anatoly Podgoretsky ©   (2003-07-08 10:29) [11]

Ну и дополнение кроме пользования индексом - надо научиться еще пользоваться и See Also, Example


 
Sandman25 ©   (2003-07-08 10:32) [12]

Rel_ (08.07.03 10:23)

Со стрингом так не пойдет, Вам ведь уже объясняли.
Но если в строках хранятся именно числа, то строку можно перевести в число (StrToInt) и дальше использовать данный вариант.


 
Rel_   (2003-07-08 10:45) [13]

to Sandman25

вы правы - я так и сделал , просто, казалось, почему бы сразу не объявит множество стрингов.

спасибо за помощь !!!.


to Radionov Alexey ©
можно и бинарным поиском - пользовался, но ведь энто более сложное решение - у меня задачка примитивная - не хотелось городить. (всё равно, огромное спасибо за участие !!!!!)


 
Sandman25 ©   (2003-07-08 10:49) [14]

Кстати, можно использовать FieldByName("name").AsInteger вместо StrToInt(FieldByName("name")AsString). Будет немного скорее работать.



Страницы: 1 вся ветка

Текущий архив: 2003.07.21;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.016 c
1-67788
bobr12
2003-07-09 11:57
2003.07.21
Обработка нажатия правой кнопкой мыши на визуальный компонент


14-67960
Карелин Артем
2003-07-03 15:10
2003.07.21
Программирование под Win CE на дельфи.


3-67674
Пубертанец
2003-06-26 12:25
2003.07.21
Как в SQL-запросе писать в Мемо-поле (INSERT INTO ...)?


6-67934
Шишкин Илья
2003-05-13 21:14
2003.07.21
Как проверить соединение с интернет?


3-67708
Dan
2003-06-27 10:24
2003.07.21
ADO, QReport, SQL и хранимые процедуры