dbf文件解析样例
来源:互联网 发布:手机网站源码 编辑:程序博客网 时间:2024/05/17 02:25
#include <stdio.h>
#include <string.h>
#include <share.h>
#include <conio.h>
//-------------------------------------------------------
typedef struct HeadOfDbf {
unsigned char tab;
unsigned char year;
unsigned char month;
unsigned char day;
unsigned long recnum;
unsigned short offset;
unsigned short reclen;
char save[20];
} InfoOfDbfHead;
typedef struct HeadOfDbfIndex {
unsigned char fname[11];
unsigned char type;
long addr;
unsigned char width;
unsigned char doc;
char save[14];
} InfoOfDbfIndex;
InfoOfDbfHead Head;
InfoOfDbfIndex Index[48];
int offset[48],n;
FILE *fdbf;
unsigned int rec,field,fieldnum,i;
char buf[128];
//-------------------------------------------------------
void main(int argc,char *argv[])
{
if (argc==1) {
cprintf("DBF name[.DBF]");
return;
}
strcpy(buf,argv[1]);
strcat(buf,".dbf");
if ((fdbf=_fsopen(buf,"r+b",SH_DENYNO))==NULL)
{
printf("db_open error");
return;
}
fseek(fdbf,0L,SEEK_SET);
fread(&Head,sizeof(InfoOfDbfHead),1,fdbf);
fieldnum=(Head.offset-1)/32-1;
fseek(fdbf,32,SEEK_SET);
n=0;
for(i=0;i<fieldnum;i++) {
offset[i]=n;
fread(&Index[i],sizeof(InfoOfDbfIndex),1,fdbf);
n=n+Index[i].width;
}
for (rec=0;rec<Head.recnum;rec++) {
printf("\n>>");
for (field=0;field<fieldnum;field++) {
fseek(fdbf,(long)(Head.offset+1+rec*(long)Head.reclen+offset[field]),SEEK_SET);
fread(buf,1,Index[field].width,fdbf);
buf[Index[field].width]=0;
printf("%s|",buf);
}
}
fclose(fdbf);
}
#include <string.h>
#include <share.h>
#include <conio.h>
//-------------------------------------------------------
typedef struct HeadOfDbf {
unsigned char tab;
unsigned char year;
unsigned char month;
unsigned char day;
unsigned long recnum;
unsigned short offset;
unsigned short reclen;
char save[20];
} InfoOfDbfHead;
typedef struct HeadOfDbfIndex {
unsigned char fname[11];
unsigned char type;
long addr;
unsigned char width;
unsigned char doc;
char save[14];
} InfoOfDbfIndex;
InfoOfDbfHead Head;
InfoOfDbfIndex Index[48];
int offset[48],n;
FILE *fdbf;
unsigned int rec,field,fieldnum,i;
char buf[128];
//-------------------------------------------------------
void main(int argc,char *argv[])
{
if (argc==1) {
cprintf("DBF name[.DBF]");
return;
}
strcpy(buf,argv[1]);
strcat(buf,".dbf");
if ((fdbf=_fsopen(buf,"r+b",SH_DENYNO))==NULL)
{
printf("db_open error");
return;
}
fseek(fdbf,0L,SEEK_SET);
fread(&Head,sizeof(InfoOfDbfHead),1,fdbf);
fieldnum=(Head.offset-1)/32-1;
fseek(fdbf,32,SEEK_SET);
n=0;
for(i=0;i<fieldnum;i++) {
offset[i]=n;
fread(&Index[i],sizeof(InfoOfDbfIndex),1,fdbf);
n=n+Index[i].width;
}
for (rec=0;rec<Head.recnum;rec++) {
printf("\n>>");
for (field=0;field<fieldnum;field++) {
fseek(fdbf,(long)(Head.offset+1+rec*(long)Head.reclen+offset[field]),SEEK_SET);
fread(buf,1,Index[field].width,fdbf);
buf[Index[field].width]=0;
printf("%s|",buf);
}
}
fclose(fdbf);
}
0 0
- dbf文件解析样例
- 解析一个dbf文件
- dbf文件的解析方法
- Java解析之纠结的DBF文件
- java 读取dbf 文件 dbf含有 num.format -.--- 不能解析时,用这个
- JAVA解析DBF文件导入到Oracle数据库中
- 用java解析dbf文件,验证后有些dbf文件可以,解析类型为‘B’时出乱码报
- 解析Excel和Dbf
- JavaDBF操作DBF文件
- C#读取DBF文件
- ruby读dbf文件
- UNDOTBS01.DBF文件很大
- C# 创建DBF文件
- TQuery访问DBF文件
- java读写dbf文件
- C#读取dbf文件
- C#操作dbf文件
- .net连接DBF文件
- [CF Gym 100372C] Sergey and array
- 安装Python的编程环境PTVS
- leetcode-readMe
- 第三十节 Scala脚本编程与结束语
- 博客项目实现文章评论功能(重点是评论回复)
- dbf文件解析样例
- 51nod 1419 最小公倍数挑战(数学)
- VBA本菜单下EXCEL汇总在一张sheet里
- 提升Android studio 编译速度
- 跳过视频网站广告的方法
- Spring(十三)转账实例
- 解决ANDROID STUDIO SVN PERFORMING VCS REFRESH很慢时间很长的问题
- SDWebImage图片二级缓存异步加载基本原理
- 2016 年技术总结