README.md

# DBF

Read DBASE files in Elixir.

At the moment it only supports read.

## Usage

Open a file with open/1 or open/2 

```elixir
{:ok, db} = DBF.open("test/dbf_files/bayarea_zipcodes.dbf")
```

The resulting DB follows the enumerable protocol, so you can use all the functions in the Enum module.

So to get all the records of a database you can do:

```elixir
db |> Enum.to_list()
```

The result will be a tuple ´{status, %{...}}´ with the record status being either :record or :deleted_record.

You can get specific rows by using the `DBF.get/2` function.

```elixir
case DBF.get(db, 2) do
  {:record, row} -> IO.inspect row
  {:deleted_record, row} -> IO.inspect row
  {:error, _} -> IO.puts "OMG"
end
```

## DBF File Format

 * http://independent-software.com/dbase-dbf-dbt-file-format.html
 * https://www.clicketyclick.dk/databases/xbase/format/dbf.html#DBF_STRUCT
 * https://wiki.dbfmanager.com/dbf-structure