Board logo

标题: C读写大dbf文件 [打印本页]

作者: liyangwyh     时间: 2010-1-21 11:11    标题: C读写大dbf文件

我在dos下用C一行一行读取dbf中的记录,当数据文件大了就死机了。

fseek(fp,headlength, 0);/*将文件指针定位到第一记录开始处*/
        for (recno=1; recno<=recnumber; recno++)
        {
                fgets(str, reclength+1, fp);
                printf("%u, %s\n",recno, str);
        }

请问各位有没有什么好的方法解决?
作者: mmxx0212     时间: 2010-1-21 12:00
可以找找有没有DBF文件操作的头文件
作者: mmxx0212     时间: 2010-1-21 12:03
你把完整代码发上来看看
作者: liyangwyh     时间: 2010-1-21 12:46
谢谢各位,问题找到了,是str的空间太小了数据内容超出了
作者: firstsail     时间: 2010-1-21 12:53
这太好理解了,
您的recno是unsigned int 类型,而recnumber纪录号是unsinged long类型,所以recno不管怎样加加,只能在0~65535u中变化.

如果recno是unsigned long 类型,则printf("%u, %s\n",recno, str)应改为
printf("%lu, %s\n",recno, str);