[fpc-pascal]blockread in a procedure
David Emerson
dle3ab at angelbase.com
Sun Feb 29 09:24:54 CET 2004
Hi there,
I'm having trouble using blockread. It was working for... oh, a year... and all of a sudden it's not working. I'm getting a runtime error 87 in win32/i386 (fpc 1.0.10) and an error 217 in linux/i386 (fpc 1.0.6). Since I always compile with -gl it tells me it's failing right at blockread. Here's the code...
const
test_file_name = 'test.txt';
the_source : ansistring = '';
procedure read_source_file;
const
bufsize = 2048;
var
source_file : file;
buf : array [1..bufsize] of char;
count_read : longint; // longint required by blockread
begin
write ('Reading source file.....');
assign (source_file, test_file_name);
reset (source_file);
the_source := '';
repeat
blockread (source_file, buf, bufsize, count_read);
the_source := the_source + copy (buf, 1, count_read);
until count_read = 0;
close (source_file);
the_source := the_source + chr(255);
writeln ('Source file successfully read');
end;
begin
read_source_file;
end.
If I get rid of the procedure read_source_file and put its code directly into the main "begin end." then it works. So for some reason, suddenly it can't stand having blockread inside a procedure. I haven't touched the procedure or any of the constants/variables associated with it in a long time, so it's bizarre that it suddenly decided to fail.
Incidentally, fpc 1.0.10 rpm failed to install on redhat. I struggled with it for a good hour. Any tips? Does the gz work better than the rpm?
Cheers,
David
More information about the fpc-pascal
mailing list