|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2010-09-28 08:49 UTC] kp at kll dot pl
Description: ------------ created dbf has in header 0 as value of length for fileds types date and bool. PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Tue Oct 28 20:00:01 2025 UTC |
patch: --- dbf_head.c.original 2010-09-28 12:46:04.000000000 +0200 +++ dbf_head.c 2010-09-28 12:46:15.000000000 +0200 @@ -200,9 +200,11 @@ break; case 'D': dbf->db_flen = 8; + put_short(dbfield.dbf_flen, dbf->db_flen); break; case 'L': dbf->db_flen = 1; + put_short(dbfield.dbf_flen, dbf->db_flen); break; default: put_short(dbfield.dbf_flen, dbf->db_flen);Some DBF tools report created file as corrupted. Solution is to modify file: dbf_head.c function: get_dbf_field before: ------------------------------- switch (dbf->db_type) { case 'N': case 'F': dbf->db_flen = dbfield.dbf_flen[0]; dbf->db_fdc = dbfield.dbf_flen[1]; break; case 'L': dbf->db_flen = 1; break; case 'D': dbf->db_flen = 8; break; default: dbf->db_flen = get_short(dbfield.dbf_flen); break; } ------------------------------- after patch: ------------------------------- switch (dbf->db_type) { case 'N': dbfield.dbf_flen[0] = dbf->db_flen; dbfield.dbf_flen[1] = dbf->db_fdc; break; case 'D': dbf->db_flen = 8; put_short(dbfield.dbf_flen, dbf->db_flen); break; case 'L': dbf->db_flen = 1; put_short(dbfield.dbf_flen, dbf->db_flen); break; default: put_short(dbfield.dbf_flen, dbf->db_flen); } -------------------------------sorry for above, correct function is: put_dbf_field and... before patch: ------------------------------- switch (dbf->db_type) { case 'N': dbfield.dbf_flen[0] = dbf->db_flen; dbfield.dbf_flen[1] = dbf->db_fdc; break; case 'D': dbf->db_flen = 8; break; case 'L': dbf->db_flen = 1; break; default: put_short(dbfield.dbf_flen, dbf->db_flen); } ------------------------------- after patch should be: ------------------------------- switch (dbf->db_type) { case 'N': dbfield.dbf_flen[0] = dbf->db_flen; dbfield.dbf_flen[1] = dbf->db_fdc; break; case 'D': dbf->db_flen = 8; put_short(dbfield.dbf_flen, dbf->db_flen); break; case 'L': dbf->db_flen = 1; put_short(dbfield.dbf_flen, dbf->db_flen); break; default: put_short(dbfield.dbf_flen, dbf->db_flen); } -------------------------------