Btrieve is proprietary database software. For more information, look here:
- https://en.wikipedia.org/wiki/Btrieve
- https://en.wikipedia.org/wiki/Architecture_of_Btrieve
- http://www.novell.com/zh-cn/documentation/nw5/nw5/usserver/btrv_enu/data/hzfwvbv2.html
Bold Retriever is an alpha-quality utility for parsing binary database files generated by Btrieve (with extension .dbp). It was developed by reverse engineering a single .dbp test file. Btrieve is currently on version 12. The version of that test file is not known. "Your mileage may vary" is be a significant understatement.
-
Install haskell stack: https://docs.haskellstack.org/en/stable/README/
-
Check out this repository and cd to the repo directory
stack build
-
Locate the Btrieve dbp file you want to parse.
-
Btrieve uses a fixed width format for data, we need to find the positions for each column
stack exec findColumnLengths <your_file.dbp>
- Copy the last line outputted below "Boundaries:", you need them for them for the next step.
- Note: This step is imperfect, column width is probably saved somewhere in the dbp's file control record (FCR), but FCR parsing is not implemented, this utility guesses based on presents of null characters. You can modify the outputted list of numbers to fix bad assumptions made by the utility.
- Parse the file
stack exec parse <your_file.dbp> "<quoted list of numbers copied in the previous step>"