[fpc-pascal] accessing files from a function

London Disney disney.london at googlemail.com
Mon May 16 08:35:26 CEST 2011


well why not make it a global variable in that unit's implementation?

implementation
var
 f:text
....
.....

then have a separate function to close the file.





On 16 May 2011, at 01:28, John Lee <johnelee0 at gmail.com> wrote:

> 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 at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal



More information about the fpc-pascal mailing list