社区
C语言
帖子详情
哪里有操作DBF文件的C源码下载(十万火急) ?
happy
2000-04-30 05:25:00
...全文
317
4
打赏
收藏
哪里有操作DBF文件的C源码下载(十万火急) ?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
happy
2000-05-09
打赏
举报
回复
谢谢你们
我也放弃了
fuzhenxing
2000-05-07
打赏
举报
回复
#include "dbf.h"
#include <dos.h>
#define OK 0
#define CANCEL -1
DBFop::DBFop(char *DBFname)
{
initDBF(DBFname,SHARE and NEEDWRITE);
}
DBFop::DBFop(char *DBFname,int op)
{
initDBF(DBFname,op);
}
void DBFop::initDBF(char *DBFname,int op)
{
int tmpi1,tmpi2;
int _access,_shflag,_mode;
// char *p;
DBFstru=NULL;
strcpy(DBFfn,DBFname);
tmpi1=op&0x00FF; // EXCLUSIVE
tmpi2=op&0xFF00; // NEEDWRITE
_access=O_BINARY;
_access and =tmpi2?O_RDWR:O_RDONLY;
_shflag=tmpi1?SH_DENYRW:SH_DENYNONE;
_mode=S_IREAD;if(tmpi2) _mode and =S_IWRITE;
DBFfp=sopen(DBFfn,_access,_shflag,_mode);
if(DBFfp!=-1)
{
read(DBFfp,&DBFhead,32);
iFieldNum=DBFhead.Addr/32-1;
dataStart=DBFhead.Addr;
DBFstru=(DBFstruType *)farmalloc(iFieldNum*32);
read(DBFfp,DBFstru,iFieldNum*32);
/*
tmpi=strlen(DBFname);
strncpy(LDXfn,DBFname,tmpi-3);
LDXfn[tmpi-3]=0;
strcat(LDXfn,"LDX");
*/
}
else
{
DBFhead.DBFcode=0;
DBFhead.Len=16;
}
if(DBFhead.DBFcode==-11)
{
tmpi1=strlen(DBFname);
strncpy(FPTfn,DBFname,tmpi1-3);
FPTfn[tmpi1-3]=0;
strcat(FPTfn,"FPT");
FPTfp=sopen(FPTfn,_access,_shflag,_mode);
cHasFPT=1;
}
else cHasFPT=0;
dataBuf[0]=dataBuf[1]=dataBuf[2]=dataBuf[3]=NULL;
recPerBuf=64000L/DBFhead.Len;
isOpen=1;
cHasMEM=0;
cHasXMS=0;
cReadBuf=0;
cWriteBuf=0;
}
DBFop::~DBFop()
{
if(cReadBuf) delete readRecordBuf;
if(cWriteBuf) delete writeRecordBuf;
if(cHasMEM) freeDBFMEM();
if(cHasXMS) freeDBFXMS();
if(isOpen&&DBFfp!=-1) close(DBFfp);
if(isOpen&&FPTfp!=-1&&cHasFPT) close(FPTfp);
if(DBFstru!=NULL) farfree(DBFstru);
}
int DBFop::isOk(void)
{
return DBFfp!=-1?1:0;
}
int DBFop::isDBFok(void)
{
return DBFfp!=-1?OK:CANCEL;
}
long DBFop::getDBFnum(void)
{
return DBFhead.Num;
}
int DBFop::reLoadDBFhead(void)
{
if(DBFfp==-1) return 1;
lseek(DBFfp,0,0);
read(DBFfp,&DBFhead,32);
return 0;
}
int DBFop::getDBFrecord(long lRecordNo,char *cRetChar)
{
return getDBFrecord(lRecordNo,cRetChar,0);
}
int DBFop::getDBFrecord(long lRecordNo,char *cRetChar,int len)
{
if(lRecordNo>=DBFhead.Num)
{
*cRetChar=0;return 2;
}
lseek(DBFfp,lRecordNo*DBFhead.Len+DBFhead.Addr,0);
read(DBFfp,cRetChar,DBFhead.Len-len);
cRetChar[DBFhead.Len-len]=0;
return 0;
}
sunsol
2000-05-02
打赏
举报
回复
问一下文件结尾的1A标志怎么在我用foxplus手动append单条记录时
没有出现?
syz
2000-04-30
打赏
举报
回复
不知你想干什麽?我曾经也有你一样的问题,后来放弃了,因为还是用FOX 比较方便。
访问DBF 就象用DBC驱动比较来的快,不知你是不是想寻求刺激?那就去“文件格式”里
看看吧!要是我赶程序的话,我是不会这样做的。":-)
C++
操作
dbf
文件
(深入剖析
dbf
文件
)
总结来说,C++
操作
DBF
文件
涉及到理解
DBF
文件
的内部结构,使用C++的I/O流进行
文件
操作
,以及处理不同数据类型的转换。通过自定义的`
Dbf
`类,我们可以方便地读取、写入和查询
DBF
文件
,而无需依赖Visual Foxpro驱动,...
java
操作
dbf
文件
Java
操作
DBF
文件
是数据库处理中的一个特殊场景,
DBF
是一种常见的数据库
文件
格式,常见于FoxPro、dBase等早期数据库管理系统中。在Java中处理
DBF
文件
,主要是为了兼容这些旧系统的数据或者进行特定的数据交换。下面...
基于java
dbf
-0[1].4.0.jar包的
dbf
文件
操作
源码
一般的
dbf
文件
都是数据库
操作
文件
,用c语言进行
操作
的dll很多,但是java
操作
的很少,我找到了一个java
dbf
-0[1].4.0.jar的包,但是
操作
效果很不理想,尤其是末尾空格和乱码问题,于是我在这个jar包的基础上进行进一步...
C++
操作
Dbf
文件
功能:
操作
DBF
文件
的C++代码,可以创建
DBF
文件
、读取
DBF
文件
、写入
DBF
文件
、拷贝
DBF
文件
的结构 环境:需要C++11和BOOST库,需要设置环境变量BOOST_HOME指向BOOST的根目录 例子:见main.cpp
java
dbf
源码
Java
DBF
源码
解析 Java
DBF
,全称为Java处理
DBF
文件
的库,是一种用于在Java应用程序中读取和写入
DBF
(dBASE格式)
文件
的工具。
DBF
文件
是早期数据库系统如dBASE、FoxPro等使用的数据
文件
格式,包含表格数据和元数据。...
C语言
70,020
社区成员
243,264
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章