我的学习生涯(Delphi篇) - 10
来源:互联网 发布:服务器坏了数据怎么办 编辑:程序博客网 时间:2024/04/30 06:55
很多时候需要把CSV文件(逗号分隔文件)存进数据库中。
Delphi在这方面得心应手。
-------------------------------------------------------------------------------------------------美丽分割线---------------------------
年代:2006年
文件:MY0505.7z
效果如下图:
单元文件:
Unit1.pas
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, DB, ADODB, DBTables, Grids, DBGrids, ExtCtrls, DBCtrls;type TForm1 = class(TForm) Button1: TButton; RichEdit1: TRichEdit; ADODataSet1: TADODataSet; Button2: TButton; ADOConnection1: TADOConnection; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1; Function RegulateStr(aString:String;Sepchar:String):String; Function GetSubStr(var aString:String;SepChar:String):String; implementation function readXBF(DimRecord: Integer;filename1:WideString):WideString; stdcall;external 'XBFGenerate.dll';{$R *.dfm}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; //sepcharcount:=0; end else if(Flag)then begin Mystr:=Mystr+TempStr; Flag:=False; end else begin//相连的两个分隔符处理 Mystr:=Mystr+' '+TempStr; Flag:=False; end; end; if MyStr[Length(MyStr)]<>SepChar then MyStr:=MyStr+SepChar; RegulateStr:=MyStr;end;Function GetSubStr(var aString:String;SepChar:String):String;var Mystr:WideString; StrLen:Integer; SepCharPos:Integer;begin StrLen:=Length(aString); SepCharPos:=Pos(SepChar,aString);//计算分割符在子串中的位置 MyStr:=Copy(aString,1,SepCharPos-1);//将分割符前所有字符放到mystr串中 Delete(aString,1,SepCharPos);//除去分割符和分割符前的子串 GetSubStr:=MyStr;//返回一个字段end;procedure TForm1.Button1Click(Sender: TObject);var i,j,Num:Integer; MyLine,Space:String;begin with ADODataSet1 do begin Open; for i:=0 to RichEdit1.Lines.Count-1 do begin MyLine:=RegulateStr(RichEdit1.Lines[i],','); for j:=1 to 11 do begin Edit; Fields[j-1].Value:=GetSubStr(MyLine,','); post; end;//nei for Append; end;//wai for end;//with endend;procedure TForm1.FormCreate(Sender: TObject);var filepath1:string;begin filepath1:=ExtractFilePath(ParamStr(0)); //ADOConnection1.ConnectionString:=readXBF(-1,filepath1+'sy2.xbf'); //ADODataSet1.Close; //ADODataSet1.CommandText:='select * from dy04'; //ADODataSet1.Open;end;procedure TForm1.FormShow(Sender: TObject);begin RichEdit1.Lines.LoadFromFile('D:\send\station04.txt');end;procedure TForm1.Button2Click(Sender: TObject);var richstring:TStringList; i,j,Num:Integer; MyLine,Space:String;begin richstring:=TStringList.Create; richstring.LoadFromFile('D:\receive\station01.txt'); richstring.SaveToFile('D:\receive\station.txt'); with adodataset1 do begin Open; for i:=0 to richstring.Count-1 do begin MyLine:=RegulateStr(richstring.Strings[i],','); for j:=1 to 11 do begin Edit; Fields[j-1].Value:=GetSubStr(MyLine,','); post; end;//nei for Append; end;//wai for end;//with end { Place thread code here }end;end.
- 我的学习生涯(Delphi篇) - 10
- 我的学习生涯(Delphi篇) - 完结篇
- 我的学习生涯(Delphi篇) - 00
- 我的学习生涯(Delphi篇) - 01
- 我的学习生涯(Delphi篇) - 02
- 我的学习生涯(Delphi篇) - 03
- 我的学习生涯(Delphi篇) - 04
- 我的学习生涯(Delphi篇) - 05
- 我的学习生涯(Delphi篇) - 06
- 我的学习生涯(Delphi篇) - 07
- 我的学习生涯(Delphi篇) - 08
- 我的学习生涯(Delphi篇) - 09
- 我的学习生涯(Delphi篇) - 11
- 我的学习生涯(Delphi篇) - 12
- 我的学习生涯(Delphi篇) - 13
- 我的学习生涯(Delphi篇) - 14
- 我的学习生涯(Delphi篇) - 15
- 我的学习生涯(Delphi篇) - 16
- 2011年上半年软考程序员下午试题-试题一答题解析
- 服务器数据备份具体要求及实现
- Android Studio 主题如何黑色变为白色
- 判断奇偶
- Windows认证登录
- 我的学习生涯(Delphi篇) - 10
- POJ1191 棋盘分割
- 下标到指针之间和转换
- 【科普】之桌面操作系统
- 敏捷感悟1 - 项目有终点,敏捷无终点。敏捷就是“持续改进”
- 杭电2049
- iOS观察者模式
- 观察者模式初次总结(一)
- BCB运行时常见的几个错误