Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сравнить два набора данных [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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо