Skip to content

tomathosauce/paradox.js

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 

Paradox.js

A library for reading paradox database files (*.db)

Usage

  var ParadoxTable = require("paradox.js")
  var fs = require("fs")
  
  var file = fs.readFileSync("path/to/file")
  var table = new ParadoxTable(file)

Getting records

You have to import the ParadoxTable and use .findRecords() method in order to get all records. This method also accepts an object which can contain the following properties: maxBlockNumber (an integer), filter (a function), disableWarning (a boolean).

  var records = table.findRecords({
    filter: function(record){
      if(someCriteria(record)){
        return true
      }
      return false
    }
  })

When the file size exceeds 100mb it will probably produce a memory error, so the use --max-old-space-size flag when running your script.

Creating a CSV file

  table.dumpToCSV()

The .dumpToCSV() method will create a output.csv file. This method also accepts a callback which will receive an array of records (a record is an array of Fields) in case you want to have more control over the output.

Notes

The following data types: Memo BLOb, Binary Large Object, Formatted Memo BLOb, OLE, Graphic BLOb, BCD and Bytes are currently not supported, so you will have to decode them yourself.

TODO

  1. Add support for more data types.
  2. If possible, improve perfomance and maybe do some refactoring.

There are some links below, as well as some documentation written by Randy Beck and Kevin Mitchell in /documents in case you want to contribute: