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