Witam,
mam taki kod ktory odczytuje koniec pliku ..
function ReadFile(FileName: String): AnsiString;
var
F :File;
Buffer :AnsiString;
Size :Integer;
ReadBytes :Integer;
DefaultFileMode:Byte;
begin
Result := '';
DefaultFileMode := FileMode;
FileMode := 0;
AssignFile(F, FileName);
Reset(F, 1);
if (IOResult = 0) then
begin
Size := FileSize(F);
while (Size > 1024) do
begin
SetLength(Buffer, 1024);
BlockRead(F, Buffer[1], 1024, ReadBytes);
Result := Result + Buffer;
Dec(Size, ReadBytes);
end;
SetLength(Buffer, Size);
BlockRead(F, Buffer[1], Size);
Result := Result + Buffer;
CloseFile(F);
end;
FileMode := DefaultFileMode;
end;
function ReadEof(Delimit1, Delimit2 :String) :String;
var
Buffer :AnsiString;
ResLength :Integer;
i :Integer;
PosDelimit :Integer;
begin
Buffer := ReadFile(ParamStr(0));
if Pos(Delimit1, Buffer) > Pos(Delimit2, Buffer) then
PosDelimit := Length(Buffer)-(Pos(Delimit1, Buffer)+Length(Delimit1))
else PosDelimit := Length(Buffer)-(Pos(Delimit2, Buffer)+Length(Delimit2));
Buffer := Copy(Buffer, (Length(Buffer)-PosDelimit), Length(Buffer));
ResLength := Pos(Delimit2, Buffer)-(Pos(Delimit1, Buffer)+Length(Delimit1));
for i := 0 to (Reslength-1) do
Result := Result+Buffer[Pos(Delimit1, Buffer)+(Length(Delimit1)+i)];
end;
uzycie :
ReadEof('[[delimit1]]','[[delimit2]]');
kod zwraca wartosc pomiedzy atrybutami delimit1 i delimit2
wszystko chodzi pieknie, ładnie, pojawia sie problem gdy program spakuje upx-em, wtedy nie potrafi znalezc delimitow i nie odczyta stringa pomiedzy nimi, dodam ze tekst delimit1moj tekstdelimit2 jest zawsze na koncu pliku i nie jest spakowany..dziekuje za pomoc