Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Element in Array mit Differenzwert?

  Alt 7. Mär 2009, 16:20
Hey,

ich habe folgendes Problem: Ich möchte ermitteln, ob sich ein bestimmter Wert bereits in einem Array befindet. Hierbei soll eine Differenz in beide Richtungen beachtet werden. Zum beispiel ist in meinem Array bisher nur der Wert 3. Meine Differenz ist 7 und ich will prüfen, ob der Wert 5 noch in die Liste passt, ohne mit den anderen Zahlen zu kollidieren. Die Rückgabe wäre hier FALSE, da 3 ja im Bereich (5-7) bis (5+7) liegt.

Ich hoffe ihr versteht das Problem. Mein bisheriger Ansatz liefert leider keine brauchbaren Resultate:

Delphi-Quellcode:
function IsElementInArray(lpArray: TRestoreArray; dwElement,
  dwDelta: DWord): Boolean;
var
  I, J: Integer;
begin
  Result := false;
  for J := (0 - dwDelta) to dwDelta do
  begin
    for I := Low(lpArray) to High(lpArray) do
    begin
        if ((dwElement + J) = lpArray[I].dwOffset) then
        begin
          Result := true;
          Exit;
        end;
    end;
  end;
end;
Entweder ich habe grade eine Blockade, oder es tritt irgendwie ein Speicherüberlauf im DWord auf, da DWord ja nicht negativ werden kann. Ich hoffe mir kann da jemand helfen.

Gruß Zacherl
  Mit Zitat antworten Zitat