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 <johnel...@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@lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to