offset := int64(r.headerlen + r.recordlen*i) should be: offset := int64(r.headerlen) + int64(r.recordlen) \* int64(i - 1) DBASE world use recno 1 as first record not 0.
offset := int64(r.headerlen + r.recordlen*i)
should be:
offset := int64(r.headerlen) + int64(r.recordlen) * int64(i - 1)
DBASE world use recno 1 as first record not 0.