ID: 42261
User updated by: roberto at spadim dot com dot br
Reported By: roberto at spadim dot com dot br
-Status: Closed
+Status: Open
Bug Type: dBase related
Operating System: any
PHP Version: 5.2.4RC1
New Comment:
hello, the same error occur now for logic data (boolean)
[0] => Array
(
[name] => SUSPENSO
[type] => boolean
[length] => 34817 <========= should be 1
[precision] => 0
[format] => %34817s
[offset] => 1
)
[1] => Array
(
[name] => COD_CAD
[type] => number
[length] => 9
[precision] => 0
:
....
Previous Comments:
------------------------------------------------------------------------
[2007-08-10 00:30:11] [EMAIL PROTECTED]
This bug has been fixed in CVS.
Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
Thank you for the report, and for helping us make PHP better.
------------------------------------------------------------------------
[2007-08-09 22:57:45] spadim at spadim dot com dot br
this could be the same problem of bug #27470
------------------------------------------------------------------------
[2007-08-09 20:01:15] roberto at spadim dot com dot br
an dbf file could be get from here: www.spadim.com.br/dbf.dbf
------------------------------------------------------------------------
[2007-08-09 19:26:14] roberto at spadim dot com dot br
an dbf file could be get from here: www.spadim.com.br/dbf.dbf
------------------------------------------------------------------------
[2007-08-09 19:04:42] roberto at spadim dot com dot br
Description:
------------
sometimes i get 520 size of date field, that's wrong since i can open
files on clipper
i changed source to set field length to 8 and precision to 0 when type
of field is 'D' and it's work, please checkit
Reproduce code:
---------------
some dbf files have problem
Expected result:
----------------
header information of date always be 8 length
Actual result:
--------------
520 length in some cases
check what i do: dbf_head.c
line ~160
switch (dbf->db_type) {
case 'N':
case 'F':
dbf->db_flen = dbfield.dbf_flen[0];
dbf->db_fdc = dbfield.dbf_flen[1];
break;
=> case 'D':
=> dbf->db_flen = 8;
=> break;
default:
dbf->db_flen = get_short(dbfield.dbf_flen);
break;
}
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=42261&edit=1