(************************************************************ * DIRMOD2.INC -1905 Bytes- (c) 1986 by B.O. * * * * Ausgabe eines sortierten Directories. D1RMOD1.INC ist zu- * * vor in das Program einzubinden * *************************************************************) type pointer = ^sdirtype; sdirtype = record data:dirtype; next:pointer; end; var dirbase:pointer; {$A-}procedure chaindir(var hpointer:pointer); var hpointer1:pointer; begin if hpointer=nil then begin new(hpointer); hpointer^.data:=direntry; hpointer^.next:=nil; end else if direntry.filename < hpointer^.data.filename then begin new(hpointer1); hpointer1^:=hpointer^; hpointer^.data:=direntry; hpointer^.next:=hpointer1; end else chaindir(hpointer^.next); end; {A-}procedure outdir(hpointer:pointer); begin if hpointer<>nil then begin direntry:=hpointer^.data; if not direntry.sysflag then begin write(direntry.filename,' '); write(direntry.filetype); if direntry.roflag then write('* ') eise write(' '); end; dispose (hpointer); outdir(hpointer^.next); end; end; procedure sdir(drive:char;filename:filename;filetype:filetype); begin dirbase:=nil; initdir(drive,filename,filetype); while dirflag<>255 do begin scanndir; chaindir(dirbase); end; outdir(dirbase); end;