社区
Java SE
帖子详情
高分求救,怎么从java里读dbf格式里的数据??
jcs5094
2004-10-26 11:02:25
现在 作一个接口,要从dbf里读数据,改该如何是好?
...全文
195
9
打赏
收藏
高分求救,怎么从java里读dbf格式里的数据??
现在 作一个接口,要从dbf里读数据,改该如何是好?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
drugon
2004-11-05
打赏
举报
回复
dbf文件好象有专门的格式,前面有人说用ODBC不一定行的,因为它不是一个Database,所以不一定可以生成一个数据源,你先找到他的格式,然后以读文件的方式读,就可以把数据取出来。以前有一个这样的贴子,你找一下,可以找到的。
lenoli
2004-11-05
打赏
举报
回复
给我email
netsea_wangchao
2004-11-05
打赏
举报
回复
这是C语言实现的读取DBF文件的方法
#define MAXFIELD 255 /*字段的最大个数*/
unsigned long recordnum;/*记录号*/
unsigned long recordlen,structlen,filednum;/*记录长度,库结构长,字段数*/
FILE *fp;
struct
{
char name[50];/*字段名称*/
char type;/*字段类型*/
int length;/*字段长度*/
int decim;/*小数位数*/
}filed[MAXFIELD];
union
{
long i;/*存整形字段*/
double f;/*存实型字段*/
char s[255];/*存字符型字段*/
}f_value[MAXFIELD];
void clear();/*设置屏幕为图形方式*/
void get_head();/*读取数据库的结构信息*/
void go();/*移动记录指针*/
void duse();/*打开数据库*/
void readdata();/*读取记录*/
void dispdata();/*显示数据*/
void closedata();/*关闭数据库*/
#include <stdio.h>
main()
{
char *filename;
unsigned long i;
*filename = "YXDM.dbf";
duse(filename);
get_head(fp);
for(i = 0;i++;i < recordnum)
{
dispdata(fp,i);
}
closedata(fp);
}
#include<graphics.h>
void clear()
{
int graphdriver = DETECT;
int graphmode;
initgraph(&graphdriver,&graphmode,"");
}
void get_head(FILE *fp)
{
unsigned char ch[9];
int i;
fseek(fp,4,0);
fgets(ch,9,fp);
recordnum = ch[0] + 256 * ch[1] + 4096 * ch[2] + 65535 * ch[3];/*记录数*/
recordlen = ch[6] + 256 * ch[7];/*记录长度*/
structlen = ch[4] + 256 * ch[5];/*库说明的长度*/
filednum = (structlen - 32 -1 ) / 32;/*字段的个数*/
for(i = 0;i < filednum;i++)
{
fseek(fp,(i + 1) * 32,0);
fgets(filed[i].name,11,fp);/*取得字段名称*/
fseek(fp,(i + 1) * 32 + 11,0);
filed[i].type = fgetc(fp);/*取字段类型*/
fseek(fp,(i + 1) * 32 + 16,0);
ch[0] = fgec(fp);
filed[i].length = ch[0];/*取字段长度*/
fseek(fp,(i + 1) * 32 + 17,0);
fgets(ch,2,fp);
filed[i].decim = ch[0];/*取小数位数*/
}
}
void go(FILE *fp,unsigned long i)
{
if(fp == NULL)
{
printf("file not open\n");
getch();
return ;
}
fseek(fp,structlen + (i - 1) * recordlen,0);
}
void duse(char *filename)
{
if((fp = fopen(filename,"rwb")) == NULL)
{
printf("file can not open\n");
getch();
exit(1);
}
}
void readdata(FILE *fp,unsigned long rnum)
{
int j;
unsigned int lim;
char ch;
double ftemp;
if(rnum > recordnum)
{
printf("parameter error\n");
getch();
return ;
}
go(fp,rnum);
ch = fgetc(fp);
if(ch == '*')
{
printf("record had been delete");
return ;
}
j = 0;
lim = filednum;
while(j < lim)
{
fgets(f_value[j].s,filed[j].length + 1,fp);
if(filed[j].type == 'N')
{
ftemp = atof(f_value[j].s);
if(filed[j].decim > 0)
{
f_value[j].f = ftemp;
}
else
{
f_value[j].i = ftemp;
}
}
j++;
}
}
void dispdata(FILE *fp,unsigned long rnum)
{
int j;
unsigned int lim;
lim = filednum;
readdata(fp,rnum);
clear();
j = 0;
while(j < lim)
{
printf("%-20s:",filed[j].name);
if(filed[j].type == 'N')
{
if(filed[j].decim > 0)
printf("%f\n",f_value[j].f);
else
printf("%d\n",f_value[j].i);
}
else
printf("%s\n",f_value[j].s);
j++;
}
void closedata(FILE *fp)
{
if(fclose(fp))
{
printf("database close error\n");
exit(1)
}
}
}
zyatwh
2004-10-26
打赏
举报
回复
你在论坛里搜索,有很多相关贴子
zhangchenguang
2004-10-26
打赏
举报
回复
湘潭有个公司开发有DBF驱动,能够把DBF文件当作数据库中的一个表来使用的,啥公司,忘了,不过他们的开发包好像叫COM.HXTT....
jcs5094
2004-10-26
打赏
举报
回复
在pb里存储成dbase2就读不出来,dbase3就能读出来,这是怎么回事啊??
jcs5094
2004-10-26
打赏
举报
回复
lhz_9712(晃晃悠悠) :
能不能详细一点,最好给点源代码!
lhz_9712
2004-10-26
打赏
举报
回复
读取excel,text,dbf我都用这种方法做过。
不过你要注意的是,每一个dbf是看成一张表,而对于excel中,每一个sheet看成一张表
lhz_9712
2004-10-26
打赏
举报
回复
用该dbf做一个odbc的数据源,然后用odbc jdbc桥来读数据。
别说dbf,就是text也可以。
Java
代码导出
dbf
文件
Java
代码中导出
dbf
格式
的文件 根据项目的业务要求,需要完成一个导出
dbf
文件的功能 网上查资料实现了该功能,现总结如下: 1.下载合适的Maven依赖,我用的是1.11.2版本 <dependency> <groupId>com.github.albfernandez</groupId> <artifactId>
java
dbf
</artifactId> <version>1.11.2</version>
Java
导出
DBF
格式
文件(标题中文)
本文章不是原创,但是我抄袭的那个连接我找不到了,还是有些自己写的东西,见谅! 文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.
读
入
数据
总结 前言 写这篇文章是有原因的,我前两天有一个需求,
java
导出
DBF
格式
文件,我全网搜索只搜到使用1.9.4 版本的
java
dbf
.jar包,导出的
DBF
格式
文件标题中文乱码,害的我搞了两天! 提示:以下是本篇文章正文内容,下面案例可供参考 一、
DBF
是什么? 不想搜了,大概就是数...
springboot
java
实现 从
数据
看获取
数据
导出
dbf
文件
目录 介绍 依赖 工具类 控制层 介绍 实现
java
springboot 导出
dbf
通过如下步骤 1.编写一个
dbf
工具类 2.实现通过传入一个文件地址名字,加一个list<hashmap>> 3.工具类会生成文件然后把list解析把
数据
生成
dbf
到文件中 4.通过response 返回给页面客户端文件 5.删除之前创建的本地
dbf
文件 ok ...
java
excel转
dbf
系统是属于辅助系统 基于其他系统做一些
数据
转换的功能 需求
里
面需要
数据
落地 所以使用中间表导入导出处理 使用jxf导入,
java
dbf
导出
dbf
----------------------------------------------- 时间有限 持续更新
DBF
文件使用
JAVA
读
写解决方案
本文给出了两种使用
java
读
写
DBF
文件的方式,分别为使用
java
dbf
开源组件和使用jdbc-odbc桥接foxpro驱动的方式。
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章