Hallo HHick123,
ich hab da etwas aus meinen alten Beständen herausgekramt (ursprünglich
TP mit blockread):
Delphi-Quellcode:
procedure PPADATENLESEN(efile:string);
const
lies=128;
sl=sizeof(tpsatz1); {satzlänge=sizeof(tpsatz1)}
var
pp : tfilestream;
buffer : packed array [1..lies,1..sl] of byte;
gelesen : integer;
i : integer;
begin
erstpasatz:=nil;
leztpasatz:=nil;
pp:=tfilestream.create(efile,fmopenread or fmsharedenywrite);
while pp.position<pp.size do begin
gelesen:=pp.Read(buffer,lies*sl);
for i:=1 to gelesen div sl do begin
new(actpasatz);
move(buffer[i],actpasatz^.satz,sizeof(tpsatz1));
actpasatz^.next:=nil;
actpasatz^.last:=leztpasatz;
if erstpasatz<>nil then
leztpasatz^.next:=actpasatz
else
erstpasatz:=actpasatz;
leztpasatz:=actpasatz;
end;
end;{while-----------------------}
pp.free;
end;
wahrscheinlich gibts in der Zwischenzeit elegantere Lösungen, aber das Teil funktioniert seit ein paar Jahren.
Gruß
K-H