Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.07.21;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.008 c
14-68067
Makhanev A.S.
2003-07-06 01:50
2003.07.21
WinXP...жуть какая-то...


14-67995
Кен
2003-06-29 05:45
2003.07.21
Как проще всего преобразовать программу в компонент ?


8-67931
bkv
2003-03-28 15:03
2003.07.21
Работа с tiff форматом


14-67991
HolyGlory
2003-07-01 18:54
2003.07.21
Более эффективный способ создания галлюцинаций


8-67932
Dmitry Silchenko
2003-03-01 19:59
2003.07.21
Не получается





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский