Example of Sorted Fixed Fields or Records
The following example shows the use of the extractSort method to sort fixed-length fields or records.
fileTest(); vars sa : SortActorArray; sortActor1 : SortActor; sortActor2 : SortActor; inputFile : File; outputFile : File; begin create sa transient; create sortActor1 transient; create sortActor2 transient; create inputFile transient; create outputFile transient; inputFile.recordSize := 84; // Fixed-length records inputFile.endOfField := ""; // No field terminator // The first actor sortActor1.sortType := SortActor.SortType_String; // Invoke alphanumeric sortActor1.length := 8; // sort of length 8 sortActor1.startPosition := 10; // Start at position 10 sortActor1.fieldNo := 1; // First field sortActor1.ascending := true; // Ascending sort order sortActor1.random := false; // Not random order // The second actor sortActor2.sortType := SortActor.SortType_String; // Invoke alphanumeric sortActor2.length := 8; // sort of length 8 sortActor2.startPosition := 1; // Start at position 1 sortActor2.fieldNo := 2; // Second field sortActor2.ascending := false; // Descending sort order sa.add(sortActor1); sa.add(sortActor2); inputFile.fileName := "c:\test\temp.sor"; outputFile.fileName := "c:\test\temp.std"; outputFile.allowReplace := true; // Replace output file if necessary inputFile.extractSort(sa, outputFile); // Sort the file now epilog delete inputFile; delete outputFile; delete sa; delete sortActor1; delete sortActor2; end;