image provider

Reorder utility


This essay does not describe an existing computer program, just one that should exist. This essay is about a suggested student project in Java programming. This essay gives a rough overview of how it might work. I have no source, object, specifications, file layouts or anything else useful to implementing this project. Everything I have prepared to help you is right here.

This project outline is not like the artificial, tidy little problems you are spoon-fed in school, when all the facts you need are included, nothing extraneous is mentioned, the answer is fully specified, along with hints to nudge you toward a single expected canonical solution. This project is much more like the real world of messy problems where it is up to you to fully the define the end point, or a series of ever more difficult versions of this project and research the information yourself to solve them.

Everything I have to say to help you with this project is written below. I am not prepared to help you implement it; or give you any additional materials. I have too many other projects of my own.

Though I am a programmer by profession, I don’t do people’s homework for them. That just robs them of an education.

You have my full permission to implement this project in any way you please and to keep all the profits from your endeavour.

Please do not email me about this project without reading the disclaimer above.


This utility is useful when you have a text file with sections/paragraphs out of order. It works by the user inserting tags in the file to define the desired order, then running the utility.

Another application is you might be writing a book. You have ideas listed higgledy piggledy. You can reorganise everything in a logical order.

The Tags

The tags include:

Reorder Tags
Tag Purpose
<SECT sectName> Marks the start of a section to be reordered. Must be given a unique name.
<PUT sectName1 sectname2…> Describes the order you want sections to appear in the output file.
<SORT *> Sort all sections by section name not mentioned in a previous or subsequent PUT statement and write them to the output file.
<SORT sectName1 sectname2…> Sort all sections by section name listed write them to the output file.
<DROP *> Discard all sections not mentioned in a <PUT or <SORT excluding ones mentioned in <PUT or <SORT later in the file.
<DROP sectName1 sectname2…> Discard all sections in the list
<LEAVE> Leave the various <SECT etc. tags in the output. Otherwise they are stripped. Keeping them lets you rerun Reorder without having to reinsert the tags.


It is probably easiest to read the whole file into RAM (Random Access Memory), compute the new order and if it has changed contents, write it out in order to a temporary file, then if all went ok, delete the original file and rename the temporary to the original.

You might consider optionally allowing duplicate <SECT names. In that case the second one would be treated as logically concatenated to the first. You would still specify the name only once in the <PUT statement.


Make sure:

splitter a utility similar to Reorder

This page is posted
on the web at:

Optional Replicator mirror
on local hard disk J:

Canadian Mind Products
Please the feedback from other visitors, or your own feedback about the site.
Contact Roedy. Please feel free to link to this page without explicit permission.

Your face IP:[]
You are visitor number