I'd like to put the assign and reset of a text file into a function, and
then use the function to return a line from the file, without needing to
close the file then re assign and reset  every time (for performance
reasons) - see below for my attempt.

This doesn't work because I guess the file handles etc are local to the
function are volatile, so cannot be accessed in the main program  Is there a
simple way to fix this ie to make this function work. Of course one can
const in a function to make normal variables non volatile...but files etc?

TIA for any ideas...John

main program...
get_line('tmp.tmp,0), to assign and reset;

{get lines}
str1:=get_line('tmp.tmp,1);
str2:=get_line('tmp.tmp,1)
....
{close)
get_line('tmp.tmp,2)

assume function is defined as
function get_line( fname;string;flag:longint):string;
var f:text
begin
if flag=0 then
 begin
  assign(f,fname);
  reset(f);
 end;
if flag=1 then
while not eof(f) do
 begin
  readln(f);
 end;

 if flag=2 then close(f);
 get_line;=f;
end;
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to