I'm a software programmer of compugroup medical company in Germany.
We're just writing a migration software to migrate an old dbase version of our software to the next generation. The old software is based on sequiter codebase (dBase IV).
As I had problems to import some of our tables, I did some improvement/enhancement work for xBaseJ.
I would appreciate if you could merge this into your code to avoid code branching and merge conflicts in the future.
Please contact me: rbn@compugroup.com or via ticket system.
What I did is dBase indexing improvements:
It is possible to have index files in another directory than the dbf file.
This is helpful if you need to generate a temporary index without changing the index
in the original directory. This is useful if you can't use the original index
due to missing special dbase features in xbaseJ.
Hint: This only will work, if you use the dbf table in read only mode.
The dbf file is read only, but the index can be created in the different directory
Skip incomplete / faulty index (tag) expressions of an MDX file, but use tags that do
not make problems (available in read only mode)
Support index '+' and '-' concatenation of columns in index expressions
Support ascending and descending order in an index expression
Implemented a progress view for performing the first step of the reIndex method
Support of function calls embedded in index expressions
Currently the following functions are being supported:
DTOS, // convert date to string YYYYMMDD
STR, // convert number or double value to string
UPPER, // should be clear
SUBSTR, // extract a substring out of a column
RECNO, // return the current record number
Other methods easily can be added if they are needed, see:
http://www.data-tech.com/help/faxsdk3/dBASE_Expression_Functions.html
Example for index expressions containing dbase functions: "STR(PatientNo,15,0)-STR(Quarter,5,0)-STR(SerialNo,15,0)-DTOS(Date)-STR(SPos,5,0)-STR(RECNO(),12,0)"
Handling of int-to-short casting problems (max value of type short exceeded)
Removed System.gc() call as this slows down the reindexing process.
Simplified handling of boxed types
Feel free to post the changes in an attachment. For my convenience use Eclipse patch files.