Thursday, September 15, 2016

Kitlog Pro File conversion

Back when I purchased the project I was given the printed manual with annotated work log notes on the pages along with a backup of the Kitlog Pro project. While I myself am not using Kitlog, I thought it would be nice to take a look at the project and archive off it's entries for historical record.

Kitlog Pro seems to be pretty popular amongst builders. I went over to the website, downloaded a copy, created a windows VM to run it in (unfortunately it only runs under Windows) and started to dig around. It seems like a pretty nice program, but with that said I still did/do not intend to use it. 

The backup looked to be some sort of database records with a TPS file extension. I tried importing these files into KitLog Pro 2.0, but it appeared that in version 2.0 the program changed to an XML format for its data storage. I emailed support and they were very responsive. They gave me the link to the 1.7.3 version of the program and proceeded to tell me that I should download 1.7.3, replace the installed database files with the ones that I had, and then upgrade to 2.0. I tried it (I didn't try that hard), but when I got 1.7.3 running and replaced the install files and rebooted, nothing showed up. I am sure this process would work, but I wasn't even intending to use Kitlog, so I went another way.

I really just wanted the data that was in the TPS files so that I could reference it at a later time in case there was something that I could not make sense of from the work logs in the construction manual. I started to see if my filesystem knew of this file type.

No luck. The second check was to see if there were any words that could be picked out of the file. i.e. was the file in some crazy binary format, or was it plain ASCII.

While that doesn't look that interesting, if you look further into the strings dump you start finding sentences!

So at this point I can at least figure out how to extract some data from this file and probably piece it back together. Developers rarely roll their own file data storage these days though in lieu of an already existing format. The next step was to figure out what sort of file this was. After a bit of digging in the hexdumps of the file I determined it was a Clarion Top Speed database file. Clarion TPS is proprietary file format that holds table based data, but with that said, people have already reversed the proprietary file format!

I ended up using the github tps-parse project: Once you get that compiled, it is pretty straight forward to convert the files from TPS to CSV.

By giving the program the directory with all of the saved TPS files as input and an output directory to save the CSVs to, I now have all of the logs saved in a useable format. From here I will probably write a small python script to import these into my own worklog. For the time being, Google sheets provides all I need.

No comments: