共享VC6中将文本文件导ACCESS库的类(修改版)

     因为工作中需要用到检查文本文件,想来想去,还是导到access库要简单点; SQL直接导效果不是很好;  若使用schema.ini文件,效果将会很好, 和直接在access中人工导入效果相差无几.  目前发现的区别是导入数据出错时在库中不会出现经常看到的"粘贴错误"那张表.

 

    网上找了半天,没找到类似的类,就自己动手写了个; 共享所有代码; 两个CPP,两个H, 压缩在一个包内, 下载图片后将扩展名改为 rar 即可. 下载地址: http://hi.csdn.net/attachment/201004/29/0_12725114405igh.gif (下载地址已修正)

 

   TxtSchema.cpp 文件中的CTxtSchema类可生成一个schema.ini文件; 使用CreateSchema方法;

   Txt2Mdb.cpp 文件中的CTxt2Mdb类可用于导入文本文件,使用 ImportTxt2MDB 方法;

  

   ImportTxt2MDB方法有两个变体, 一个是导入前根据schema参数自动创建schema.ini; 另一个不管schema,直接导入;

 

   所有类都基于命名空间TFC下面; 不喜欢的可以自己删除之.

 

   使用的是ODBC引擎, 觉得不爽的兄弟可以自己修改成JET引擎. 两种都支持.   

 

   下面给出一个简单的例子:(版权lonefox所有)

  1. void CMy4Dlg::OnOK() 
  2. {
  3.     TFC::CTxtSchema schema;
  4.     TFC::SchemaData sch;  //定义schema数据内容;因为是程序完成导入,所以需要这么麻烦, 能手动建文件的话,直接手动整一个就可以了. 都不用这么折腾.
  5.     sch.FirstLineTitle = false;
  6.     sch.FileName = "ZHOUBIAN.TXT";
  7.     sch.Delimiter = TFC::DT_TAB;
  8.     sch.Charset = TFC::CST_OEM;
  9.     sch.FixedWidthCols = false;
  10.     sch.MaxScanRows = 100;
  11.     TFC::TextField* pField = new TFC::TextField;  //定义表中的字段和文本文件一对一
  12.     pField->FieldName = "区号";//城市名称
  13.     pField->FieldSize = 255;
  14.     pField->Type      = TFC::SDT_ODBC_CHAR;
  15.     sch.FieldsDefined.Add(pField);
  16.     pField = new TFC::TextField;
  17.     pField->FieldName = "城市名称";//城市名称
  18.     pField->FieldSize = 100;
  19.     pField->Type      = TFC::SDT_ODBC_CHAR;
  20.     sch.FieldsDefined.Add(pField);
  21.     pField = new TFC::TextField;
  22.     pField->FieldSize = 255;
  23.     pField->Type      = TFC::SDT_ODBC_INTEGER;
  24.     sch.FieldsDefined.Add(pField);
  25.     
  26.     TFC::CTxt2Mdb test;
  27.     if (test.ImportTxt2MDB("c://ZHOUBIAN.TXT""c://1.mdb""biaoming",   //导入
  28.         sch, true) != RESULT_OK)
  29.     {
  30.         MessageBox("error");
  31.     }
  32.     else
  33.     {
  34.         MessageBox("ok")
  35.     }
  36.     sch.ReleaseAllFields();  //释放字段对象
  37. }

    编写这两个类时,主要参照了两个文档, 推荐浏览:

http://support.microsoft.com/kb/234201   MSDN文章

http://dev.csdn.net/article/23/23704.shtm   CSDN技术中心文章

 

   因为工作繁忙,时间比较紧, 测试不是很充分,  使用请注意风险, 后果自负! 欢迎留言报告bug.

===================================

非注明转载的文章和blog在未特殊声明情况下一般为本人原创或整理,
原创文章版权归沙漠孤狐(lonefox)所有;转载文章版权归原作者所有;

http://blog.csdn.net/boythl

欢迎转载,但请注明出处,保留作者和版权信息。

===================================

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值