1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
procedure TForm1.LastText;
var
f:file of byte;
s,m:string;
t,j:integer;
b,bb:Boolean;
Function Dechiffre:Boolean;
var
i,j:integer;
n:string;
begin
n:=m;
j:=length(m);
i:=j;
while (j>0) and (n[j]<>#10) do dec(j);
result:=(j>0);
if result then
begin
i:=i-j;
setlength(m,i);
inc(j);
move(n[j],m[1],i);
end;
end;
begin
if not OpenDialog1.Execute then exit;
assignfile(f,OpenDialog1.FileName);
{$i-}
reset(f);
if IOResult<>0 then exit;
t:=filesize(f);
s:='';
b:=false;bb:=false;
repeat
t:=t-$400;
if t<0 then t:=0;
seek(f,t);
setlength(m,$400);
BlockRead(f,m[1],$400,j);
if not bb then
begin
while (j>0) and ((m[j]=#10) or (m[j]=#13)) do dec(j);
bb:=j>0;
end;
if bb then
begin
if j<$400 then setlength(m,j);
b:=Dechiffre;
s:=m+s;
end;
until (b) or (t=0);
ShowMessage(s);
end; |
Partager