DEFINITION MODULE FileSort; (********************************************************) (* *) (* In-place file sort using the QuickSort method *) (* *) (* Programmer: P. Moylan *) (* Last edited: 9 November 2001 *) (* Status: Replacing Files by FileOps *) (* *) (********************************************************) FROM SYSTEM IMPORT (* type *) ADDRESS; FROM QuickSortModule IMPORT (* type *) CompareProc; FROM FileOps IMPORT (* type *) ChanId; TYPE RecordNumber = CARDINAL; PROCEDURE InplaceSort (f: ChanId; from, to: RecordNumber; EltSize, offset: CARDINAL; GE: CompareProc); (* In-place sort of part of a file. We sort record numbers *) (* from..to inclusive. EltSize is the element size; offset is the *) (* number of bytes (zero, in most cases) before record number 0 in *) (* the file; and GE is a user-supplied function to compare elements *) (* at two specified addresses. *) END FileSort.