Einzelnen Beitrag anzeigen

Benutzername

Registriert seit: 18. Apr 2004
7 Beiträge
 
#7

Re: Feststellen ob eine Menge in einer anderen vorkommt

  Alt 3. Okt 2008, 15:00
Danke für eure Antworten.

Menge1 und Menge2 kann in folgenden Konstellationen auftreten ("-" sind die einzelnen Einträge und "+" sind die ausgewählten Elemente).

Code:
Liste ----------

A    ---+++---- M1
      -+++++++-- M2

B    ---+++---- M1
      -++++----- M2

C    ---+++---- M1
      ----++++-- M2

D    ---+++---- M1
      ---+++---- M2

E    ---+++---- M1
      ++-------- M2

F    ---+++---- M1
      -------++- M2

G    ---+++---- M1
      ----+----- M2
Demnnach kann ich mit folgenden Überprüfungen feststellen, ob Überlappungen vorliegen (ist nur bsp Code).

Delphi-Quellcode:
  Result:= false;
  if M1.Index = M2.Index then
  begin
    // D
    Result:= true;
  end else begin
    if M2.Index < M1.Index then
    begin
      // A, B, E
      if (M2.Index + M2.Size) - 1 >= M1.Index then
      begin
        // A, B
        Result:= true;
      end;
      // E
    end else begin
      if M2.Index > M1.Index then
      begin
        // C, F
        if M2.Index <= (M1.Index + M1.Size) - 1 then
        begin
          // C
          Result:= true;
        end;
        // F
      end else begin
        // G
        Result:= true;
      end;
    end;
  end;
Gibt es noch eine einfachere Möglichkeit das zu überprüfen?
Decken meine Überprüfungen alle Kombinationen ab?
  Mit Zitat antworten Zitat