Ich hab in Delphi 3.0 einen Pointer erstell (var Buffer : Pointer)
dann mit GetMem (Buffer, 2359296) Speicher reserviert,
dann dorthin eine Datei geladen (Blockread (Datei, Buffer^, 2359296).
Das funzt alles Prima. Aber jetzt will ich auf das X-te Byte der Daten zugreifen. Wie geht das???????
thanks schon mal im Voraus...
Bitte schnell antworten, sonst fummel ich mir mit Assembler noch die Finger ab, weil die Integration in Delphi sch... ist.
Programmieren - alles kontrollieren 4.938 Themen, 20.667 Beiträge
hi,
war nicht einfach, hab auch ne weile gebraucht... aber probiers mal damit :
type
PByteArray = ^TByteArray;
TByteArray = array[0..0] of Byte;
var
Buffer: PByteArray;
B: Pointer;
P: PChar;
S: String;
begin
GetMem(Buffer, 12345678);
try
for I := 0 to 12345678 -1 do
if Buffer[I] = 15 then ;
finally
ReallocMem(Buffer, 0);
end;
GetMem(P, 12345678);
try
for I := 0 to 12345678 -1 do
if PByteArray(P)[I] = 15 then ;
if PChar(P)[I] = #15 then ;
finally
ReallocMem(P, 0);
end;
SetLength(S, 12345678);
BlockRead(F, PChar(S)^, 12345678);
for I := 1 to 12345678 do
if Ord(S[I]) = 15 then ;
// LongStrings werden automatisch freigegeben !!
GetMem(P, 12345678);
try
BlockRead(F, P^, 12345678);
for I := 0 to 12345678 -1 do
if Ord(P[I]) = 15 then ;
if P[I] = #15 then ;
if Byte(P[I]) = 15 then ;
finally
ReallocMem(P, 0);
end;
end;
gruß aaf