thanks all - btw it wasn't the real code just an example I made up , the
while loop wasn't needed- mistake!
But the q still remains - having three functions would still give the
problem I have now- that when doing a file_read (my function flag=1) would
say 'file not open' because the handles are volatile & local to file reset
- that was the point of my original email. Seems as if there is no solution?
John
On , Rainer Stratmann <rainerstratm...@t-online.de> wrote:
In my eyes it is (very) unlogic.
Why don't you make 3 functions?
Something like this...
var filename : string; // global var for storing the filename
function file_reset( name : string ) : boolean;
function file_read( var eof : boolean ) : string;
function file_close : boolean;
Whith your example you don't have to pass the filename for operation 1
(flag=1).
Rainer
Am Monday 16 May 2011 02:28:14 schrieb John Lee:
> 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