[fpc-pascal] accessing files from a function

John Lee johnelee0 at gmail.com
Mon May 16 02:28:14 CEST 2011


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;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20110516/651e8808/attachment.html>


More information about the fpc-pascal mailing list