学院首页 软件应用 编程开发 创意设计 认证培训 软件论坛
ASP ASP.NET PHP JSP SQL MYSQL Java VB

您的位置:学院 >> 编程开发 >> Delphi >> 用Delphi实现将纯文本资料转入数据库


用Delphi实现将纯文本资料转入数据库


在我们日常工作中,常会碰到这样一个难题:一大堆收集好的纯文本格式,比较规整的资料怎样才能将它们分离,转到自己已经建好的数据库中进行管理呢?

  例如,有一段人事档案资料archive.txt,内容如下:

小许 21 工程师
小吴 23 助理工程师
小蔡 22 助理工程师
小牟 22 工程师

  要将它转入数据库archive.dbf中,archive.dbf结构如下:
  姓名,性别,年龄,职称

  怎么办呢?现在通过使用delphi编程,很好地解决了这个难题。Delphi提供了许多功能强大,丰富的字符处理函数和过程,常用的有:
  (1)function Length(S:String):Integer返回串的长度
  (2)function Copy(S:String;Index,Count:Integer):String 给出一个字符串中串的拷贝
  (3)function Pos(Substr:String;S:String);Integer 查找子串在字符串中的位置
  (4)Procedure Delete(VarS:String;Index,Count:Integer);从一个字符串中去除子串

  利用Delphi提供的已有函数和过程基础上编制自己的三个函数,实现了纯文本格式资料转入数据库功能。只要Delphi支持的数据库都可以支持。

  archive.txt中每行数据为一个字符串,字符串中每个被分割的数据为一个字段,分割每个字段的字符为分割符,这里是空格,也可以是,、;、#等符号。具体思想是:先将字符串进行调整,然后把串中每个字符同分割符比较,将不是分割符的字符追加到MyStr串中,最后得到一个字段的内容。通过一个循环,就可以将一个字符串分成几个字段。

  Function Regulate(aString,Sepchar:string):string 去掉多余的分割符,规范字符串
  Function GetSubStr(varsSt g:string;SepChar:String):String;得到字符串中一个子串,因要改变参数aString的值,所以将它用var定义。
  FunctionGetSubStrNum(aString,SepChar:String):Integer;计算一个字符串要被分割成几个字段。
  参数:aString是所需分割的一个字符串,SepChar是分割符。

  Function RegulateStr(aString:String;Sepchar:String):String;
  var
  i,Num:Integer;
  Flag:Boolean;
  MyStr,TempStr:String;
  begin
  Flag:=False;进行标志,去除多余的分割符
  Num:=Length(aString); 计算aString串的长度
  for i:=1 to Num do
  begin
  TempStr:=Copy(aString,i,1);取aString串中的一字符
  if TempStr SepChar then
  begin
  MyStr:=MyStr+TempStr;
  Flag:=True;
  end
  else
  if(Flag = True)then
  begin
  Mystr:=Mystr+TempSrt;
  Flag:=False;
  end;
  end;
  if MyStr[Length(MyStr)] SepChar then
  MyStr:=MyStr+SepChar;
  RegulateSrt:=MyStr;
  end;

  Function GetSubStr(var aString:String,SepChar:Strign):String;
  var
  Mysrt:String;
  StrLen:Integer;
  SepCharPso:Integer;
  begin
  StrLen:=Length(aString);
  SepCharPos:=Pos(SepChar,aString);计算分割符在子串中的位置
  MyStr:=Copy(aString,1,SepCharPos-1); 将分割符前所有字符放到mystr串中
  Delete(aString,1,SepCharPos);除去分割符和分割符前的子串
  GetSubStr:=MyStr;返回一个字段
  end;

  FunctionTforml.GetSubStrNum(aString:String;SepChar:String):Integer;
  var
  i:Integer;
  StrLen:Integer;
 Num:Integer;
  begin
  StrLen:=Length(aString);
  Num:=0;
  for i:=1 to StrLen do
  if Copy(aString,i,1) = SepCharthen
  Num:=Num+1;
  GetSubSrtNum:=Num;
  end;

  有了上面三个函数,现在介绍一下具体的应用:
  1.首先建立一个窗体Forml,加入一个RichEditl(或Menol),一个按钮Buttonl和一个Tablel,设置Tablel的属性:
  Tablell.DataBase = c:\Archivs
  Tablell.TableName =Archive.dbf

  2.分别加入以下程序:
  Const Space=
  ProcedureTForml.FormCreate(Sender:Tobject);
  begin
  RichRditl.Lines.LoadFromFile(Archive.txt);
  end;

  ProcedureTForml.Button1Click(Sender:Tobject);
  var
  i,j:Integer;
 MyLine:String;
  begin
  with Tablel do
  begin
   Open;
 for i:=0 to RichEditl.Lines.Count-1 do
 begin
  MyLine:=RegulateStr(Richeditl.Lines[i],Space);
  for j:=1 to Num do
  begin
  Append;
  fileds[j-1].aString:=GetSubSrt(MyLine,Space));
  post;
  end;
  end;
  end;
  end;

  然后就可以进行编译,运行了。此程序在win95/Delphi2.0下调试通过。

技术文章快速查找

栏目导航
软件应用
·操作系统 ·杀毒防黑 ·应用软件
·聊天软件 ·网络软件  
Web开发
·ASP ·JavaScript ·CGI
·JSP ·VbScript ·Web服务器
·PHP ·XML  
开发语言
·VB ·VC ·ASP.NET
·Java ·C/C++ ·Delphi
数据库开发
·MySQL ·SQL/Access ·PowerBuilder
·Oracle ·DB2  
网站设计
·Flash ·Dreamweaver ·HTML/CSS
·Fireworks ·FrontPage  
平面设计
·Photoshop ·CorelDraw ·AutoCAD
·FreeHand ·Illustrator ·3DsMAX
媒体动画
·Director ·Authorware ·Maya
·视频处理    


相关软件 产品库推荐
·笔记本 ·台式机 ·服务器
·数码相机 ·手机 ·GPS
·DV摄像机 ·MP3 ·MP4
·CPU ·硬盘 ·内存
·主板 ·显卡 ·显示器
·打印机 ·投影机 ·路由器

这个方法比较繁琐,如果文本文件中的数据是连续且每条纪录都是按规律排列,就好办多了。实现起来只要加一个循环即可...
游客 发表于2008-8-26 21:09:11
对"用Delphi实现将纯文本资料转入数据库"的评论 - 快速回贴
内容:
  [完成后可按Ctrl+Enter发布]

百度中 用Delphi实现将纯文本资料转入数据库 相关内容
Google搜索中 用Delphi实现将纯文本资料转入数据库 相关内容
雅虎中 用Delphi实现将纯文本资料转入数据库 相关内容
Sogou搜索中 用Delphi实现将纯文本资料转入数据库 相关内容

相关软件 最新回复帖子:

·用Delphi实现将纯文本资料转入数据库
·3Ds max多边形建模主要功能命令
·网友评论 XP系统和Ghost安装版的区别
·AutoCAD建模实例剖析:冷兵器之剑
·将Photoshop创建的位图导入Flash MX
·明明白白Windows XP中EFS加密及解密
·Oracle的面试问题——技术知识篇
·内存加速器 优化大师整理工具的妙用
·没有mysql支持时的替代方案
·一个可以发送附件及HTML格式邮件的PHP类


  相关软件 用Delphi实现将纯文本资料转入数据库相关文章
在Delphi中建立和使用别名 Delphi编程实现3DS动画的播放
在DBGrid中实现Copy、Paste功能 用Delphi编程访问SQLServer数据库
在Delphi动态生成定义数据库 Delphi筛选数据
用DELPHI 3.0制作应用软件经验谈 Delphi中数据文件路径的管理
Delphi中建表 如何实现在一个Dbgrid中显示多数据库
为Delphi数据表格增加彩色 建立应用软件注册安全机制
在Delphi中自动检测、建立数据库别名和表格 在Delphi程序中维护DBF数据库
用Delphi 开发数据库程序经验三则 在Delphi的DBGrid中插入其他可视组件
Delphi3数据库编程中的查找字段 Delphi数据库开发及统计表格设计
用Delphi4的QReport部件生成报表 也谈为Delphi中数据库报表加网格