home *** CD-ROM | disk | FTP | other *** search
- {$A-,B-,D-,E-,F-,I-,L-,N-,O-,R-,S-,V-}
- {$M 65520, 0, 655360}
-
- uses
- eco_lib, crt, dos { all tricks :-) }
-
- ;
-
-
- type
- str96 = string[96];
- str96ptr = ^str96;
-
- var
- fin : text;
- filenum, i : word;
- bin : array[1..16384] of char;
- allstrs : array[1..4096] of str96ptr;
-
-
- {$F+}
- function order(var data1, data2): boolean; far;
- begin
- order := str96(pointer(data1)^) < str96(pointer(data2)^)
- end;
- {$F-}
-
-
-
-
-
- begin
- starttimer(1);
- writeln(
- 'Reading up to ', __pntstr(maxavail), ' bytes from ',
- __slashfil(__normfil(paramstr(1)))
- );
- assign(fin, paramstr(1)); settextbuf(fin, bin); reset(fin); filenum := 0;
- while not eof(fin) do begin
- inc(filenum); new(allstrs[filenum]); readln(fin, allstrs[filenum]^);
- end;
- close(fin);
- writeln('Sorting...');
- __qsortsrt(@allstrs, filenum, sizeof(str96ptr), @order);
- writeln('Writing...');
- assign(fin, paramstr(1)); settextbuf(fin, bin); rewrite(fin);
- for i := 1 to filenum do writeln(fin, allstrs[i]^);
- close(fin);
- writeln('Written in ', getlaptime(1));
- end.
-