Dubletten / Überschneidung

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Dubletten / Überschneidung

Beitrag von AUGE_OHR »

hi,

Ich habe numerische Werte (N,10,3) mit Anfang und Ende (Zeit in Sekunden)

Nun will ich Dubletten / Überschneidung im Array vermeiden

Code: Alles auswählen

AADD( aDupe,{nIn,nOut,cVideo} )
hm ... und nun ?
Die Codeblöcke wären

Code: Alles auswählen

//
// Start / Stop exakt ==
//
   {|x| nIn    == x[1] .AND. nOut   == x[2] .AND. cVideo == x[3] }
//
// Start / Stop innerhalb eines anderen
//
   {|x| nIn    >= x[1] .AND. nOut   <= x[2] .AND. cVideo == x[3] }
//
// Start innerhalb eines anderen
//
   {|x| nIn    >= x[1] .AND. nIn    <= x[2] .AND. cVideo == x[3] }
//
//  Stop innerhalb eines anderen
//
   {|x| nOut   >= x[1] .AND. nOut   <= x[2] .AND. cVideo == x[3] }
und wie bekomme ich alle Abfragen "zusammen" ...

Code: Alles auswählen

IF Einer_der_Codeblöcke()
ELSE
   AADD( aDupe,{nIn,nOut,cVideo} )
ENDIF
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2936
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Dubletten / Überschneidung

Beitrag von Wolfgang Ciriack »

Hallo Jimmy,
ginge das nicht mit

if Eval(b1) .or. Eval (b2) .or. Eval(b3) .or. Eval(b4)

wobei b1 bis b4 deine Codebblöcke sind.
Viele Grüße
Wolfgang
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Dubletten / Überschneidung

Beitrag von AUGE_OHR »

Wolfgang Ciriack hat geschrieben:if Eval(b1) .or. Eval (b2) .or. Eval(b3) .or. Eval(b4)
wobei b1 bis b4 deine Codebblöcke sind.
JA ! ... manchmal sieht man den Wald vor Bäumen nicht ... Danke !

Code: Alles auswählen

//
// Start / Stop exakt ==
//
IF     Eval( {|x| nIn    == x[1] .AND. ;
                  nOut   == x[2] .AND. ;
                  cVideo == x[3]       }, aDupe )
//
// Start / Stop innerhalb eines anderen
//
ELSEIF Eval( {|x| nIn    >= x[1] .AND. ;
                  nOut   <= x[2] .AND. ;
                  cVideo == x[3]       }, aDupe )
//
// Start innerhalb eines anderen
//
ELSEIF Eval( {|x| nIn    >= x[1] .AND. ;
                  nIn    <= x[2] .AND. ;
                  cVideo == x[3]       }, aDupe )
//
//  Stop innerhalb eines anderen
//
ELSEIF Eval( {|x| nOut   >= x[1] .AND. ;
                  nOut   <= x[2] .AND. ;
                  cVideo == x[3]       }, aDupe )
ELSE
   AADD( aDupe,{nIn,nOut,cVideo} )
gruss by OHR
Jimmy
Antworten