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

Reply via email to