unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Db, DBTables, StdCtrls, ComCtrls;type TForm1 = class(TForm) Table1: TTable; Button1: TButton; Button2: TButton; OpenDialog1: TOpenDialog; RichEdit1: TRichEdit; procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); private Function Regulatestr(aString:string;Sepchar:string):string; Function GetSubStr(var aString:string;SepChar:String):String; Function GetSubStrNum(aString:string;SepChar:String):Integer; { Private declarations } public { Public declarations } end;var Form1: TForm1; Const Space=' '; implementation{$R *.DFM} Function Tform1.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+TempStr; Flag:=False; end; end; if MyStr[Length(MyStr)]<>SepChar then MyStr:=MyStr+SepChar; RegulateStr:=MyStr; end; Function Tform1.GetSubStr(var aString:String;SepChar:String):string; var Mystr:String; SepCharPos:Integer; begin sepCharpos:=pos(sepchar,astring);//计算分割符在子串中的位置 MyStr:=Copy(aString,1,SepCharPos-1);//将分割符前所有字符放到mystr串中 Delete(aString,1,SepCharPos);//除去分割符和分割符前的子串 GetSubStr:=MyStr;//返回一个字段 end; Function Tform1.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)=SepChar then Num:=Num+1; GetSubStrNum:=Num; end;procedure TForm1.Button2Click(Sender: TObject); var i,j:integer; myline:string; begin with table1 do begin open; for i:=0 to richedit1.lines.count-1 do begin myline:=regulatestr(richedit1.lines[i],space); for j:=1 to getsubstrnum(myline,space) do begin { append; Fields[j-2].AsString:=getsubstr(myline,space); post;} end; end; close; end; end;procedure TForm1.Button1Click(Sender: TObject); begin if opendialog1.execute then richedit1.lines.loadfromfile(opendialog1.filename); end;end.前几天弄的 你试试
unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Db, DBTables, StdCtrls, ComCtrls;type TForm1 = class(TForm) Table1: TTable; Button1: TButton; Button2: TButton; OpenDialog1: TOpenDialog; RichEdit1: TRichEdit; procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); private Function Regulatestr(aString:string;Sepchar:string):string; Function GetSubStr(var aString:string;SepChar:String):String; Function GetSubStrNum(aString:string;SepChar:String):Integer; { Private declarations } public { Public declarations } end;var Form1: TForm1; Const Space=' '; implementation{$R *.DFM} Function Tform1.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+TempStr; Flag:=False; end; end; if MyStr[Length(MyStr)]<>SepChar then MyStr:=MyStr+SepChar; RegulateStr:=MyStr; end; Function Tform1.GetSubStr(var aString:String;SepChar:String):string; var Mystr:String; SepCharPos:Integer; begin sepCharpos:=pos(sepchar,astring);//计算分割符在子串中的位置 MyStr:=Copy(aString,1,SepCharPos-1);//将分割符前所有字符放到mystr串中 Delete(aString,1,SepCharPos);//除去分割符和分割符前的子串 GetSubStr:=MyStr;//返回一个字段 end; Function Tform1.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)=SepChar then Num:=Num+1; GetSubStrNum:=Num; end;procedure TForm1.Button2Click(Sender: TObject); var i,j:integer; myline:string; begin with table1 do begin open; for i:=0 to richedit1.lines.count-1 do begin myline:=regulatestr(richedit1.lines[i],space); for j:=1 to getsubstrnum(myline,space) do begin { append; Fields[j-2].AsString:=getsubstr(myline,space); post;} end; end; close; end; end;procedure TForm1.Button1Click(Sender: TObject); begin if opendialog1.execute then richedit1.lines.loadfromfile(opendialog1.filename); end;end.
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, StdCtrls, ComCtrls;type
TForm1 = class(TForm)
Table1: TTable;
Button1: TButton;
Button2: TButton;
OpenDialog1: TOpenDialog;
RichEdit1: TRichEdit;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
Function Regulatestr(aString:string;Sepchar:string):string;
Function GetSubStr(var aString:string;SepChar:String):String;
Function GetSubStrNum(aString:string;SepChar:String):Integer;
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
Const Space=' ';
implementation{$R *.DFM}
Function Tform1.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+TempStr;
Flag:=False;
end;
end;
if MyStr[Length(MyStr)]<>SepChar then
MyStr:=MyStr+SepChar;
RegulateStr:=MyStr;
end;
Function Tform1.GetSubStr(var aString:String;SepChar:String):string;
var
Mystr:String;
SepCharPos:Integer;
begin
sepCharpos:=pos(sepchar,astring);//计算分割符在子串中的位置
MyStr:=Copy(aString,1,SepCharPos-1);//将分割符前所有字符放到mystr串中
Delete(aString,1,SepCharPos);//除去分割符和分割符前的子串
GetSubStr:=MyStr;//返回一个字段
end;
Function Tform1.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)=SepChar then
Num:=Num+1;
GetSubStrNum:=Num;
end;procedure TForm1.Button2Click(Sender: TObject);
var
i,j:integer;
myline:string;
begin
with table1 do
begin
open;
for i:=0 to richedit1.lines.count-1 do
begin
myline:=regulatestr(richedit1.lines[i],space);
for j:=1 to getsubstrnum(myline,space) do
begin
{
append;
Fields[j-2].AsString:=getsubstr(myline,space);
post;}
end;
end;
close;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
if opendialog1.execute then
richedit1.lines.loadfromfile(opendialog1.filename);
end;end.前几天弄的 你试试
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, StdCtrls, ComCtrls;type
TForm1 = class(TForm)
Table1: TTable;
Button1: TButton;
Button2: TButton;
OpenDialog1: TOpenDialog;
RichEdit1: TRichEdit;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
Function Regulatestr(aString:string;Sepchar:string):string;
Function GetSubStr(var aString:string;SepChar:String):String;
Function GetSubStrNum(aString:string;SepChar:String):Integer;
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
Const Space=' ';
implementation{$R *.DFM}
Function Tform1.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+TempStr;
Flag:=False;
end;
end;
if MyStr[Length(MyStr)]<>SepChar then
MyStr:=MyStr+SepChar;
RegulateStr:=MyStr;
end;
Function Tform1.GetSubStr(var aString:String;SepChar:String):string;
var
Mystr:String;
SepCharPos:Integer;
begin
sepCharpos:=pos(sepchar,astring);//计算分割符在子串中的位置
MyStr:=Copy(aString,1,SepCharPos-1);//将分割符前所有字符放到mystr串中
Delete(aString,1,SepCharPos);//除去分割符和分割符前的子串
GetSubStr:=MyStr;//返回一个字段
end;
Function Tform1.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)=SepChar then
Num:=Num+1;
GetSubStrNum:=Num;
end;procedure TForm1.Button2Click(Sender: TObject);
var
i,j:integer;
myline:string;
begin
with table1 do
begin
open;
for i:=0 to richedit1.lines.count-1 do
begin
myline:=regulatestr(richedit1.lines[i],space);
for j:=1 to getsubstrnum(myline,space) do
begin
{
append;
Fields[j-2].AsString:=getsubstr(myline,space);
post;}
end;
end;
close;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
if opendialog1.execute then
richedit1.lines.loadfromfile(opendialog1.filename);
end;end.