![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сравнить два набора данных [D7, WinXP]
kyn66 © (2005-07-11 14:03:00)День добрый! Есть к примеру два набора данных, каким образом лучше сравнить, входят данные из первого набора во второй или нет и какие входят а какие нет?
a := (1, 2, 3, 4, 5, 6, 7);
b := (2, 5, 7, 9, 11, 12, 15);
a in b?
DesWind (2005-07-11 16:28:00) [1]Если отчет загружается в БД, тогда проверять можно средствами БД.
Digitman (2005-07-11 16:27:00) [2]
> В базе у меня будех храниться поля с набором цифр
это как ?
покажи на фрагменте данных таблицы ...
kyn66 (2005-07-11 16:21:00) [3]Объясню конкретно. В базе у меня будех храниться поля с набором цифр, допустимых для некоторой операции. При загрузке этой таблицы, я проверяю этот набор с другим, который хранится в другой контрольной таблице. Т.е. к примеру, одна организация для отчета предоставляеть свои отделения связи по номерами 1, 2, 3. В контрольной базе у меня стоит список из таких цифр: 1, 2, 3, 4, 5. Вот, загружая, я проверяю, что для отчета двух отделений не хватает, и говорю конторе, мол, будьте любезны предоставить ешшо два отделения. Ну сейчас понятно?
Kolan (2005-07-11 16:16:00) [4]
> набором.
С массивом ты имеещь в виду?
kyn66 (2005-07-11 16:14:00) [5]Да, но здесь присутствуют множества и для них есть свои правила, а мне нужно оперировать с некоторым, произвольным набором.
Digitman (2005-07-11 14:15:00) [6]var a, b, c: set of 1..15;
procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
s : string;
begin
a := [1, 2, 3, 4, 5, 6, 7];
b := [2, 5, 7, 9, 11, 12, 15];
c := a * b;
for i := 0 to 15 do
if i in c then
s := s + inttostr(i) + ', ';
if c <> [] then
showmessage('пересечение :' + s)
else
showmessage('нет пересечений')
end;