From d2e6967da436c309453332b43cdc72f5407b2e7d Mon Sep 17 00:00:00 2001 From: thesivis Date: Fri, 12 Mar 2021 09:48:21 -0400 Subject: [PATCH 1/2] considers the number of fields in the headers instead 0x0D headers end --- dbfread/dbf.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dbfread/dbf.py b/dbfread/dbf.py index 65d45ac..cd4509e 100644 --- a/dbfread/dbf.py +++ b/dbfread/dbf.py @@ -224,7 +224,8 @@ def _decode_text(self, data): return data.decode(self.encoding, errors=self.char_decode_errors) def _read_field_headers(self, infile): - while True: + fields = int((self.header.headerlen - DBFField.size - 1)/DBFField.size) + for i in range(fields): sep = infile.read(1) if sep in (b'\r', b'\n', b''): # End of field headers From 0652f47d22934a6f572eb64cafbc9571ae0d7aab Mon Sep 17 00:00:00 2001 From: thesivis Date: Fri, 12 Mar 2021 10:12:29 -0400 Subject: [PATCH 2/2] Format code to pass in test --- dbfread/dbf.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dbfread/dbf.py b/dbfread/dbf.py index cd4509e..96f926c 100644 --- a/dbfread/dbf.py +++ b/dbfread/dbf.py @@ -224,7 +224,8 @@ def _decode_text(self, data): return data.decode(self.encoding, errors=self.char_decode_errors) def _read_field_headers(self, infile): - fields = int((self.header.headerlen - DBFField.size - 1)/DBFField.size) + sizeFieldHeader = self.header.headerlen - DBFField.size - 1 + fields = int(sizeFieldHeader / DBFField.size) for i in range(fields): sep = infile.read(1) if sep in (b'\r', b'\n', b''):