社区
VFP
帖子详情
在c++如何以文件的方式操作dbf文件
vclzy
2003-07-10 01:57:24
在c++如何以文件的方式操作dbf文件,实现添加,删除,修改等操作
...全文
144
13
打赏
收藏
在c++如何以文件的方式操作dbf文件
在c++如何以文件的方式操作dbf文件,实现添加,删除,修改等操作
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fj_jiangqi
2003-07-16
打赏
举报
回复
这是我第1次对外公布大量代码55555……
虽然不是好的代码,也是不重要的核心代码,我开始出卖了我自己555555555……
它是我的隐私,就象是我的日记一样,可……555555…………
-------------------------
39度十几天了,40度四五天了,今天40度,明天还是40度,没有空调,没有MM,叫我怎么活?
我就要被烤成人干了,救命啊……
20多天没下过雨,也没有阴天过,甚至连多云都很少出现过。
-------------------------
我流落在凄凉的世界里-孤苦伶仃
我过着动荡无助的生活-四处漂泊
vclzy
2003-07-16
打赏
举报
回复
fj_jiangqi谢谢啦。。我找这个代码找了好久了,我决定把100分都给你
本人对你的景仰有如黄河之水滔滔不绝。。。。。。。55555555555
vclzy
2003-07-16
打赏
举报
回复
呵呵,,谢谢啦。。。55555555555555555
我流落在凄凉的世界里-孤苦伶仃
我过着动荡无助的生活-四处漂泊
也许磨练是一种财富,,
冬天来了春天还会早吗...
fj_jiangqi
2003-07-15
打赏
举报
回复
u开头的变量是系统保留的或c里根本就用不着的。
-------------------------
39度十几天了,今天40度,明天还是40度,没有空调,没有MM,真是痛苦……
20多天没下过雨,也没有阴天过,甚至连多云都很少出现过。
40多度啊!没有空调,叫我怎么活……
-------------------------
我流落在凄凉的世界里-孤苦伶仃
我过着动荡无助的生活-四处漂泊
fj_jiangqi
2003-07-15
打赏
举报
回复
应该是全了,这是我在古代的时候用c写的。并没有真正的使用,运行是不会出错,但效率一定不高,因为没有进行优化处理。现在的编译系统编译有些地方可能会有一些小错误,你修改一下就ok了。
给你参考吧,5555555555……555555555……555555555555……
-------------------------
39度十几天了,今天40度,明天还是40度,没有空调,没有MM,真是痛苦……
20多天没下过雨,也没有阴天过,甚至连多云都很少出现过。
40多度啊!没有空调,叫我怎么活……
-------------------------
我流落在凄凉的世界里-孤苦伶仃
我过着动荡无助的生活-四处漂泊
fj_jiangqi
2003-07-15
打赏
举报
回复
dbffielno(DBF *dbf,char *fiel)
{
char p[15];
unsigned int fiels=0;
struct _struct_dbf *_dbf;
register unsigned int i;
_dbf=(struct _struct_dbf *)dbf;
rewind(_dbf->f);
fread(&_dbf->top,32,1,_dbf->f);
fiels=(_dbf->top.toplong>>5)-1;
for(i=0;i<fiels;i++)fread(&_dbf->fiel[i],32,1,_dbf->f);
for(i=0;i<fiels;i++)if(stricmp(fiel,_dbf->fiel[i].name)==0)break;
return((i==fiels)?0:(i+1));
}
dbfread(char *buff,unsigned long recn,unsigned int fiel,DBF *dbf)
{
int i;
struct _struct_dbf *_dbf;
_dbf=(struct _struct_dbf *)dbf;
if(fiel>_dbf->fiels)return(0);
if(fseek(_dbf->f,_dbf->top.toplong+recn*_dbf->top.bulong+_dbf->star[fiel-1],0))
return(0);
i=fread(buff,1,_dbf->fiel[fiel-1].wide,_dbf->f);
buff[i]=0;
return(i);
}
dbfwrite(char *buff,unsigned long recn,unsigned int fiel,DBF *dbf)
{
struct _struct_dbf *_dbf;
_dbf=(struct _struct_dbf *)dbf;
if(recn>=_dbf->top.recc)return(0);
if(fiel>_dbf->fiels)return(0);
fseek(_dbf->f,_dbf->top.toplong+recn*_dbf->top.bulong+_dbf->star[fiel-1],0);
return(fwrite(buff,1,dbf->fiel[fiel-1].wide,_dbf->f));
}
DBF * dbfsopen(char *filename)
{
unsigned int i;
struct _struct_dbf *_dbf;
DBF *dbf;
if((dbf=(DBF *)malloc(sizeof(DBF)))==NULL)goto end;
_dbf=(struct _struct_dbf *)dbf;
if((_dbf->f=_fsopen(filename,"rb",SH_DENYNO))==NULL){
free(dbf);
dbf=NULL;
goto end;
}
fread(&_dbf->top,32,1,dbf->f);
if((_dbf->fiel=(struct DBFFIEL *)malloc(_dbf->top.toplong))==NULL){
fclose(_dbf->f);
free(dbf);
dbf=NULL;
goto end;
}
_dbf->fiels=(_dbf->top.toplong>>5)-1;
if((_dbf->star=(int *)malloc(sizeof(int)*_dbf->fiels))==NULL){
fclose(_dbf->f);
free(_dbf->fiel);
free(dbf);
dbf=NULL;
goto end;
}
fread(_dbf->fiel,32,_dbf->fiels,_dbf->f);
for(i=0,_dbf->star[0]=1;i<_dbf->fiels;i++)
_dbf->star[i+1]=_dbf->star[i]+_dbf->fiel[i].wide;
end:
return(dbf);
}
-------------------------
39度十几天了,今天40度,明天还是40度,没有空调,没有MM,真是痛苦……
20多天没下过雨,也没有阴天过,甚至连多云都很少出现过。
40多度啊!没有空调,叫我怎么活……
-------------------------
我流落在凄凉的世界里-孤苦伶仃
我过着动荡无助的生活-四处漂泊
fj_jiangqi
2003-07-15
打赏
举报
回复
找回了一些,可还有一些与些无关的数据,可能要送到zip公司去解密,我的密码32位,痛苦啊……………………而且全都不一定样……………………
struct _struct_dbf{
FILE *f;
unsigned int *star,fiels;
struct DBFTOP top;
struct DBFFIEL *fiel;
};
typedef struct _struct_dbf DBF;
DBF * dbfopen(char *filename)
{
unsigned int i;
struct _struct_dbf *_dbf;
DBF *dbf;
if((dbf=(DBF *)malloc(sizeof(DBF)))==NULL)goto end;
_dbf=(struct _struct_dbf *)dbf;
if((_dbf->f=fopen(filename,"rb"))==NULL){
free(dbf);
dbf=NULL;
goto end;
}
fread(&_dbf->top,32,1,dbf->f);
if((_dbf->fiel=(struct DBFFIEL *)malloc(_dbf->top.toplong))==NULL){
fclose(_dbf->f);
free(dbf);
dbf=NULL;
goto end;
}
_dbf->fiels=(_dbf->top.toplong>>5)-1;
if((_dbf->star=(int *)malloc(sizeof(int)*_dbf->fiels))==NULL){
fclose(_dbf->f);
free(_dbf->fiel);
free(dbf);
dbf=NULL;
goto end;
}
fread(_dbf->fiel,32,_dbf->fiels,_dbf->f);
for(i=0,_dbf->star[0]=1;i<_dbf->fiels;i++)
_dbf->star[i+1]=_dbf->star[i]+_dbf->fiel[i].wide;
end:
return(dbf);
}
dbfclose(DBF *dbf)
{
struct _struct_dbf *_dbf;
_dbf=(struct _struct_dbf *)dbf;
fclose(_dbf->f);
free(_dbf->fiel);
free(_dbf->star);
free(dbf);
}
-------------------------
39度十几天了,今天40度,明天还是40度,没有空调,没有MM,真是痛苦……
20多天没下过雨,也没有阴天过,甚至连多云都很少出现过。
40多度啊!没有空调,叫我怎么活……
-------------------------
我流落在凄凉的世界里-孤苦伶仃
我过着动荡无助的生活-四处漂泊
vclzy
2003-07-15
打赏
举报
回复
老兄你的加密代码能给我看看吗,,本万万分,,感谢!
vclzy
2003-07-14
打赏
举报
回复
谁有代码,本人重分感谢!
fj_jiangqi
2003-07-14
打赏
举报
回复
我给你数据结构吧。
struct DBFFIEL{
unsigned char name[11],type,u[4],wide,dec,u0[14];
};
struct DBFTOP{
char u[4];
long recc;
short toplong,bulong;
char u0[20];
};
一个是字段表的结构,一个是表头的结构,支持dbase,foxbase,vfp的dbf文件结构。
代码你可以慢慢写,我的代码曾加密保存,现在密码给忘了。(^0^)
-------------------------
39度一周多了,今天39度,明天还是39度,没有空调,没有MM,真是痛苦……
-------------------------
我流落在凄凉的世界里-孤苦伶仃
我过着动荡无助的生活-四处漂泊
tchatcha
2003-07-11
打赏
举报
回复
up
fj_jiangqi
2003-07-10
打赏
举报
回复
以文件方式直接读取,有点麻烦,以前我有写过。
关键你要了解dbf文件的结构,在vfp的帮助中有详细提供,可以试试。
几个重要数据,记录宽度,记录启始偏移量,各个字段宽度及偏移量。
删除只是在记录偏移量0的字节上写上一个标志。
-------------------------
我流落在凄凉的世界里-孤苦伶仃
我过着动荡无助的生活-四处漂泊
fj_jiangqi
2003-07-10
打赏
举报
回复
用ado来操作比较方便。
-------------------------
我流落在凄凉的世界里-孤苦伶仃
我过着动荡无助的生活-四处漂泊
C++
老代码 --
DBF
数据
文件
操作
类
DBF
ile
本文介绍了一种C/
C++
程序员用于
操作
DBF
数据
文件
的类实现
方式
,包括
DBF
文件
的字段类、排序字段数组类以及
DBF
文件
类。详细解释了如何创建、使用和关闭
DBF
文件
,以及如何读写、查找和修改
文件
中的数据。
用
C++
访问
DBF
文件
的方法
该博客主要展示了用
C++
实现
DBF
文件
操作
的代码。定义了Column结构体和C
dbf
ile类,包含创建
DBF
文件
、获取字段信息、读写记录等功能。实现了Create
Dbf
函数创建
文件
,C
dbf
ile类的构造和析构函数处理
文件
打开和关闭,还有一系列成员函数用于数据
操作
。
DBF
Recordset:
C++
处理.
DBF
文件
的开源库
DBF
Recordset是用于处理.
DBF
文件
的开源
C++
类库,源于VB 6.0的ADO,适用于遗留系统和轻量级数据
操作
。文章介绍其架构、核心组件功能,涵盖安装配置、
文件
读写、数据处理等
操作
,还提及开源许可、测试示例及开发者使用指南。
C#直接
操作
二进制流以高效读取
DBF
文件
本文介绍在.NET环境下用C#直接
操作
二进制流读取
DBF
文件
。先阐述C#编程基础与
DBF
文件
格式,接着说明二进制流读取的优势和技术要点,还解析关键类和方法,最后深入分析
DBF
文件
结构并给出性能优化、异常处理等技巧,为处理非标准数据库
文件
提供经验。
c++
使用shplib读取
dbf
实时数据
本文深入探讨ShpLib库对ESRI Shapefile格式的
DBF
文件
操作
,包括API使用、
文件
格式解析及多进程环境下的行数实时获取技巧。
VFP
2,749
社区成员
29,142
社区内容
发帖
与我相关
我的任务
VFP
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
复制链接
扫一扫
分享
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章