File Formats

This section of the manual is not particularly relevant for end-users, but I thought it could be useful for programmers trying to write Perl scripts, or Python scripts, or anything else, against the save files for QHacc. All these files are plain text files, and with the exception of the preconf file, they are readable only by the QHacc user account owner.

The Preconf File

The preconf file is never actually written to by QHacc. Usually, its existance is unnecessary, but if you use it, you'll need to know how it is formatted. As of v2.9.2, the preconf file can only be used to determine four values: Debug Level, Plugin directory, i18n directory, and whether or not to run scheduled jobs. An example file looks like:
DEBUG=6
PLUGINDIR=/home/ryan/devl/.qhacc/plugins
LANGDIR=/tmp
NOJOBS=true
There isn't much to say about this file, other than *DIR tokens do not necessarily have to be absolute paths. The current plugins hierarchy is PLUGINDIR/db for database plugins, PLUGINDIR/import for import plugins and PLUGINDIR/export for export plugins. If the NOJOBS line is present at all, QHacc will not check for scheduled jobs when starting up.

The Regular Files

The following files are all similar: they all are just lines of text delimited by "||." They are the "regular" files because QHacc needs to read and write them during its normal operation. QHacc writes eight files: transactions, accounts, preferences, namedtrans, journals, jobs, and accounttypes. Hopefully, it is clear what is kept in each file.

The Preferences File

The preferences file used to be called the config file. Here is an example of a QHacc preferences file:
ALTCOLOR||46 192 255
AUTOCOMPLETION||0
CHSRHEADINGSIZES||95 66 
CHSRSORTASC||Y
CHSRSORTCOL||0
COLOREDVALUES||N
CSYMBOL||$
DATEFORMAT||0
DATESEPARATOR||/
DOUBLEENTRY||Y
FONT||Lucidabright,12,-1,5,50,0,0,0,0,0
GRAPHDELTAS||Y
GRAPHGUIDES||Y
GRAPHHEADS||Y
GRAPHSHOWTOTALS||Y
GRAPHTIME||12
GRAPHTYPE||2
GRDWINSIZE||816 450
HEADINGSIZES||61 79 237 197 58 67 27 
HIDECATEGORIES||N
LOCATION||0 21 937 586
MAINCOLOR||255 255 255
RECHEADINGSIZES||60 72 127 148 64 67 29 
RECVIEWSORTASC||N
RECVIEWSORTCOL||0
RECWINSIZE||791 348
REPORTTYPE||0
RIGHTCHOOSER||N
SHOWINDEX||0
SPLITTERSIZE||183 754
TITLEBARNAME||Ryan's Personal Accounts
TOOLBAR||2
TRANSTYPES||INT FEE WD ATM DEP Transfer
VIEWSORTASC||Y
VIEWSORTCOL||1
This file is self-explanatory, I think. The colors are specified as "RED GREEN BLUE" and the location box is "LEFT TOP RIGHT BOTTOM."

The Accounts File

The accounts file has a total of 25 fields. They are:
  1. ID
  2. Name
  3. Opening Balance
  4. Current Balance (recalculated upon startup)
  5. Current Reconciled Balance (recalculated upon startup)
  6. Monthly Budget Limit
  7. Transaction Numbers
  8. Default Transaction Number
  9. Account Number
  10. Institution Name
  11. Institution Address 1
  12. Institution Address 2
  13. Institution City
  14. Institution State
  15. Institution Zip
  16. Institution Phone
  17. Institution Fax
  18. Institution Email
  19. Institution Contact
  20. Account Notes
  21. Category
  22. Taxable Account
  23. Account Type
  24. Account Parent ID
  25. Metadata

The Transactions

Transactions have 7 fields.
  1. ID
  2. Number
  3. Payee
  4. Memo
  5. Date
  6. Journal ID
  7. Type
  8. Metadata
  9. Void flag

Splits

Splits have 6 fields.
  1. ID
  2. Transaction ID
  3. Account ID
  4. Sum
  5. Reconcile state
  6. Reconcile date
  7. Metadata
  8. Taxable flag

Named Transactions (memorized)

Memorized transactions have 4 fields
  1. ID
  2. Name of transaction
  3. Transaction ID
  4. "Main" account ID

Jobs

Jobs only have 4 fields
  1. ID
  2. Last run date
  3. Run frequency
  4. What to run