社区
VFP
帖子详情
在c++如何以文件的方式操作dbf文件
vclzy
2003-07-10 01:57:24
在c++如何以文件的方式操作dbf文件,实现添加,删除,修改等操作
...全文
147
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
http://sogotobj.iteye.com/blog/1065023 十几年前,dBASE、FoxBase和FoxPro数据库盛极一时,C/
C++
程序员使用C/
C++
直接
操作
DBF
数据
文件
是理所当然的事,下面是我在1994年写的一个
DBF
ile类代码。
DBF
Ile类的头
文件
: //
DBF
IO.HPP #ifndef__
DBF
IO_HPP #define__
DBF
IO
用
C++
访问
DBF
文件
的方法
//
dbf
.hpp#ifndef
DBF
_H#define
DBF
_H#include typedef int BOOL;#define MAXFIELD 100typedef struct Column{ char *name; // length unsigned char type; // C-N-F-D-L-M-G unsigned char len; unsigned
DBF
Recordset:
C++
处理.
DBF
文件
的开源库
DBF
Recordset是一个常用于处理.
DBF
文件
的
C++
类库。它为开发者提供了丰富的接口,以
操作
和管理
DBF
文件
。作为一种数据格式,
DBF
文件
被广泛应用于各种数据处理和存储场景中,尤其是在需要快速访问大量数据的应用中。
C#直接
操作
二进制流以高效读取
DBF
文件
DBF
文件
格式是一种被广泛使用的数据存储格式,特别是在数据库管理系统中。它起源于dBase,一个早期的个人电脑数据库管理系统。本章节将深入探讨
DBF
文件
的起源、不同版本的特点以及其结构组成,包括
文件
头、记录和字段的概念和结构。字段定义了记录中的数据类型和长度。字段描述符紧跟在
文件
头信息后,每个字段描述符长度固定,包含了字段名、类型、长度等信息。不同版本的
DBF
支持的字段类型不同,例如字符型、数值型、日期型等。Read
Dbf
.cs是一个用于读取和解析
DBF
文件
格式的 C# 实现。
c++
使用shplib读取
dbf
实时数据
简介 看这篇文章的朋友应该已经知道shplib了,官方介绍如下: The Shapefile C Library provides the ability to write simple C programs for reading, writing and updating (to a limited extent) ESRI Shapefiles, and the associated attribute file (.
dbf
). 支持三类
文件
: XXX.shp - holds the actua
VFP
2,749
社区成员
29,142
社区内容
发帖
与我相关
我的任务
VFP
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
复制链接
扫一扫
分享
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章