So wie du das geschrieben hast implizierst du das dein Gesuchter Block nur 1 mal in der Datei ist.
in deiner Sample die du hochgeladen hast ist das aber Definitiv nicht so.
Daher wüdre ich das ein bischen anders machen.
Delphi-Quellcode:
const Praefix = '@@DOCUWARE_';
begin
..
Anfang := 0;
tmp := 0;
while (Anfang <buffer.size ) and (tmp < buffer.size- length(Praefix)) do begin
// Anfang:= pos('@@DOCUWARE_', buffer);
inc(tmp);
b := True;
for z := 1 to length(Praefix) do
if Buffer[tmp+z-1]<>Praefix[z] then begin
b := false;
break;
end;
if b then begin
// for Ende:= length(buffer) downto Anfang+ 10 do
for Ende := Anfang +Length(Praefix) to Length(buffer) do
begin
if (buffer[Ende]= '@') and (buffer[Ende- 1]= '@') then
break;
end;
// Dieser Abschnitt müste nun alle Teile irgendwann mal ablaufen.
WVerarbeitung:= copy(buffer, Anfang, Ende- Anfang);
end;
end;
Sorry für den schlechten Stil ich hab leider net viel zeit.