CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

如何用其所长C 或C++ 读写 VFP 的确DBF(数据表)文件

楼主DDD1968()2005-10-30 16:30:07 在 C/C++ / C++ 语言 提问

 
  请高手指点:  
      1如何用其所长C   或C++   读写   VFP   的确DBF(数据表)文件  
      2如何对DBF文件加密 问题点数:50、回复次数:6Top

1 楼K()回复于 2005-10-30 17:06:47 得分 9

去查一下DBF的文件格式,自己写一个类,或者去找一个现成的库Top

2 楼DDD1968()回复于 2005-10-30 17:25:42 得分 9

太简单了,我还是不懂Top

3 楼fiftymetre(50米深蓝)回复于 2005-10-30 17:26:38 得分 10

VFP数据库系统有两种方式建立数据表,一种是建立与FoxPro兼容的自由表,另一种是建立数据库,数据库中包含数据表及关系,因此在C++   Builder中使用VFP数据库也相应存在    
  两种方式,即一种方式是直接调用VFP自由表,另一种方式是利用ODBC调用VFP数据库,本文将分别举例说明。  
   
    直接调用VFP自由表  
   
    1.建立数据表  
   
    数据表结构如下:  
   
  字段名   类型   宽度    
  档案名称   字符型   100    
  存放名   字符型   2    
   
    2.建立窗体Form1  
   
    放置TTable、TDataSource、TDBGrid、TDBNavigator等控件。  
   
    设置Ttable控件属性:  
   
    TableType设为ttFoxPro;  
   
    TableName设为wjk.dbf;  
   
    Active设为true。  
   
    连接TDataSource、TDBGrid、TDBNavigator等控件。  
   
    修改、删除、添加和存储内容可通过TDBNavigator控件实现或自行编写程序。  
   
    通过ODBC调用VFP数据库  
   
    1.进入面板的ODBC数据源连接VFP数据库。  
   
    2.在C++Builder中:  
   
    放置TDatabase、TTable、TDataSource、TDBGrid、TDBNavigator等控件。  
   
    设置TDatabase控件属性:  
   
    AliasName设为ODBC中连接的VFP数据库名;  
   
    DatabaseName设为C++   Builder中用户定义的数据库名称;  
   
    Params内容设置为空;  
   
    LoginPrompt为false;  
   
    Connected为true,表示连接数据库。  
   
    其他组件设置方法与自由表类似。  
   
    以上示例中,直接调用VFP自由表的速度快、方法简单、易于操作,但是当表中有复合索引时会出现调用失败,需从原表中删除复合索引后,方可再从C++   Builder中调用;而通过ODBC调用VFP数据库速度没有直接调用快,设置较自由表复杂,但可保留数据库的原有定义。    
   
   
  Top

4 楼fiftymetre(50米深蓝)回复于 2005-10-30 17:28:08 得分 10

本   文   提   供   的   方   法   可   以   做   为   一   个   小   的   模   块   放   到   你   的   应    
  用   程   序   中   调   用,   实   现   数   据   库   的   加   解   密。  
   
    首   先,   打   开Visual   C++   5.0   选   择New   建   立   一   个   基   于   对   话   框  
    的   应   用   程   序,   然   后   在   对   话   框   上   面   放   置   两   个   按   钮,   其   中    
  一   个   标   题   叫   做   加   密,   另   一   个   标   题   叫   做   解   密。   对   应   实   现    
  如   下:  
   
  void   CAa6Dlg::OnButton1()   (对应于加密按钮的单击)  
  {  
  int     buf2[512],tcd,tcd1,*p1,i;  
  CFile       cfile1;  
  char   *pfilename;  
  pfilename="c:\\aa.dbf";  
  cfile1.Open(pfilename,CFile::modeReadWrite);  
  cfile1.Read(buf2,32);  
  p1=(int*)buf2;  
  p1=p1+1;  
  tcd=*p1;  
  tcd1=(tcd-1)/2;  
  cfile1.SeekToBegin();  
  cfile1.Read(buf2,tcd);  
  buf2[0]=buf2[0]+0x0017;  
  for   (i=16;i  
   
   
    这   样,   用   本   程   序   的   加   密   功   能   加   密   的Fox   系   列   数   据   库  
  (   如Foxbase+,   Foxpro   等),   用Foxbase+,Foxpro   等   数   据   库   软   件    
  无   法   对   其   进   行   读   写。   只   有   经   过   解   密   之   后,   才   能   被   其    
  识   别。    
     
  Top

5 楼fiftymetre(50米深蓝)回复于 2005-10-30 17:29:07 得分 12

不知道行不行的,你看看吧。Top

6 楼DDD1968()回复于 2005-11-01 17:35:56 得分 0

谢谢fiftymetre先生,但是我想用C++语言实现,不用VC,怎么实现呢Top

相关问题

  • 很急的!C#操作DBF数据表!
  • ASSCESS数据表导出为DBF数据表的问题,谢谢
  • 如何将*.dbf的数据表(含汉字)转为*.db的数据表?
  • 怎样把.dbf数据表的结构转换到mysql?
  • 乱码:“DBF数据表导入sql server 中文出现乱码”
  • sql server中导入dbf数据表的问题?
  • Dreamweaver MX 2004 中连接dbf数据表的问题
  • dbf数据表读取问题.知道的说一声
  • help!数据表
  • 紧急:用sql server如何将dbf数据表导入到Oracle库中??

关键词

  • c++
  • c++ builder
  • vfp
  • 数据库
  • 控件
  • 连接
  • 文件
  • foxpro
  • 数据表
  • 调用

得分解答快速导航

  • 帖主:DDD1968
  • K
  • DDD1968
  • fiftymetre
  • fiftymetre
  • fiftymetre

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo