Ich versuche gerade zu verstehen, was du da eigentlich machst. Du suchst einen Integerwert im Hauptspeicher eines anderen Programms? Dazu besorgst du dir den Speicherinhalt in großen Blöcken. Du scheinst davon auszugehen, dass dein Integer-Wert als Double mit festem Alignment gespeichert ist. Darüberhinaus gibt es noch die Fallstricke, auf die dich Amateurprofi hingewiesen hat.
Wenn ein binärer Vergleich zulässig ist, dann kannst du deine Schleife über das Array dadurch beschleunigen, dass du einen Zeiger schiebst:
Delphi-Quellcode:
var
pd: PDouble;
d: Double;
i: integer;
begin
d := 123456;
pd := @buffer[1];
for i := 1 to 100000 do // beachte die Obergrenze
begin
if pd^ = d
then Break
else Inc(pd);
end;
// d gefunden bei index i, wenn i <= 1000000
end;
marabu
Letzten Kommentar präzisiert - wegen Klaus...