![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-15 00:27 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行 |
| DOS开发编程 & 发展交流 (开发室) » C读写大dbf文件 |
| 可打印版本 1,767 / 4 |
| 第1楼 liyangwyh | 发表于 2010-01-21 11:11 |
| 初级用户 发帖 24 积分 72 | |
|
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); } 请问各位有没有什么好的方法解决? |
|
| 第2楼 mmxx0212 | 发表于 2010-01-21 12:00 |
| 新手上路 发帖 8 积分 18 | |
|
可以找找有没有DBF文件操作的头文件
|
|
| 第3楼 mmxx0212 | 发表于 2010-01-21 12:03 |
| 新手上路 发帖 8 积分 18 | |
|
你把完整代码发上来看看
|
|
| 第4楼 liyangwyh | 发表于 2010-01-21 12:46 |
| 初级用户 发帖 24 积分 72 | |
|
谢谢各位,问题找到了,是str的空间太小了数据内容超出了
|
|
| 第5楼 firstsail | 发表于 2010-01-21 12:53 |
| 高级用户 发帖 295 积分 668 来自 广东深圳 | |
|
这太好理解了,
您的recno是unsigned int 类型,而recnumber纪录号是unsinged long类型,所以recno不管怎样加加,只能在0~65535u中变化. 如果recno是unsigned long 类型,则printf("%u, %s\n",recno, str)应改为 printf("%lu, %s\n",recno, str); |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |