`` File Sort - www.scriptol.org
`` Licence: Public Domain
`` Sort lines of a text file in ascending order
`` The file is renamed with a ".bak" extension
`` and is replaced by the same file, sorted.
` array is alias for the original array sorted
void quickSort(alias array theArray, int first, int last)
int f = first
int l = last
dyn item = theArray[(f + l) / 2]
do
while theArray[f] < item let f + 1
while item < theArray[l] let l - 1
if f <= l
swap(theArray[f], theArray[l])
f + 1
l - 1
/if
/do while f <= l
if first < l ? quickSort(theArray, first, l)
if f < last ? quickSort(theArray, f, last)
return
void usage()
print "File Sort - www.scriptol.org"
print "usage: filesort filename"
print " a bak file will be created"
exit(0)
return
int main(int argc, array argv)
array thefile
text name = argv[1]
if not file_exists(name)
print name, "not found"
usage()
/if
thefile.load(name)
scan thefile let thefile[] = thefile[].rtrim()
thefile.sort()
rename(name, name + ".bak")
thefile.store(name)
return 1