Re: Compiler error on wrong line



Andreas Koch wrote:

Argh, forgot the cleanup:

procedure TForm1.CheckInvalidLineBreaks;

const
path='C:\Projects\MyFaultyDir\';

var
fs:tfilestream;
buffer:array of byte;
t:tsearchrec;
r:integer;
line:integer;
n,nn:integer;
s:string;

begin
r:=findfirst(path+'*.pas',faanyfile,t);
while r=0 do
begin
if (t.attr and fadirectory)=0 then
begin
fs:=TFileStream.create(path+t.name,fmOpenRead);
setlength(buffer,fs.size);
fs.read(buffer[0],fs.size);
line:=0;
for n:=1 to fs.size do
begin
if (buffer[n]=10) and (buffer[n-1]=13) then inc(line);

if ((buffer[n]=10) and (buffer[n-1]<>13)) or
((buffer[n]<>10) and (buffer[n-1]=13)) then
begin
memo1.lines.add(t.name);
memo1.lines.add('Error in Line : '+inttostr(line));
s:='';
for nn:=-20 to 20 do
if ((nn+n)>=0) and ((nn+n)<fs.size) then
if buffer[nn+n]<32 then s:=s+'#'+inttostr(buffer[nn+n])
else s:=s+chr(buffer[nn+n]);
memo1.lines.add('"'+S+'"');
end;
end;
freeandnil(fs);
end;
r:=findnext(t);
end;
findclose(t);
end;
.



Relevant Pages