sort()
{
int i, runs;
extern int maxfiles, unit;
extern char FilStat[];
extern struct rec LastRec[];
/*** Initialize input/output files ***/
OpenRead( 1 );
for (i=2; i<=maxfiles; i++) if ( i <=maxfiles/2 ) filstat[i]='-' ; else openwrite( i ); distribute(); do { /*** re-assign files ***/ for (i=1; i<=maxfiles; i++) if (filstat[i]== 'o') { openread( i ); lastrec[i]=ReadFile(i); } else openwrite( i ); for (runs=1; merge(nextfile()) !='done' ; runs++); } while (runs>1);
return( unit );
};
|