很为高兴,因为你遇到了我,哈哈!我刚刚作完这个程序,和大家分享喽!首先是几个通用函数: //将其它字符转换成空格 function TurntoSpace(overall,special:string):string; var i,h:integer; sumstr,temstr:string; begin h:=length(overall); for i:=1 to h do begin temstr:=copy(overall,i,1); if temstr=special then begin temstr:=' '; sumstr:=sumstr+temstr; end else sumstr:=sumstr+temstr; TurntoSpace:=sumstr; end; end;//去除多余的指定字符:**** -> * function Delspecial(overall,special:string):string; var i,h:integer; flag:boolean; sumstr,temstr:string; begin flag:=false; h:=length(overall); for i:=1 to h do begin temstr:=copy(overall,i,1); if temstr<>special then begin sumstr:=sumstr+temstr; flag:=true; end else if flag=true then begin sumstr:=sumstr+temstr; flag:=false; end; end; if sumstr[length(sumstr)]<>special then sumstr:=sumstr+special; Delspecial:=sumstr; end;//去除指定字符:**** -> function SDelspecial(overall,special:string):string; var i,h:integer; sumstr,temstr:string; begin h:=length(overall); for i:=1 to h do begin temstr:=copy(overall,i,1); if temstr<>special then begin sumstr:=sumstr+temstr; end; end; SDelspecial:=sumstr; end;function Substring(var overall:string;special:string):string; var sumstr:string; subpos:integer; begin subpos:=pos(special,overall); sumstr:=copy(overall,1,subpos-1); delete(overall,1,subpos); Substring:=sumstr; end;function TForm1.FenGe(overall,special:string):Integer;var i:Integer; h:Integer; num:Integer; begin h:=Length(overall); num:=0; for i:=1 to h do begin if copy(overall,i,1)=special then //改为是否为处理字符 num:=num+1; end; FenGe:=num; end;procedure TForm1.BtnTabClick(Sender: TObject); const space=#009; var i:integer; myline:string; begin for i:=0 to memo1.lines.count-1 do begin myline:=TurnToSpace(memo1.lines[i],space); memo1.Lines [i]:=myline; end; end;
以上你将把tab转成空格字符,然后就是导进库里了。 procedure TForm1.BtnvfClick(Sender: TObject); const space=' '; var i,j:integer; myline:string; begin Btnvf.Enabled:=false; with Tblvf do begin TableName:='c:\leberty\ToVFP.dbf'; open; for i:=0 to memo1.Lines.Count-1 do begin myline:=Delspecial(memo1.Lines[i],space); append; for j:=1 to FenGe(myline,space) do begin fields[j].Value:=substring(myline,space); end; post; end; end; end;procedure TForm1.BtnaccessClick(Sender: TObject); const space=' '; var i,j:integer; myline:string; Aconnection,ARecordSet:variant; begin Btnaccess.Enabled:=false; Aconnection:=CreateOleObject('adodb.connection'); Aconnection.open('Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\leberty\Toacc'); ARecordSet:=CreateOleObject('adodb.RecordSet'); ARecordSet.open('acc',Aconnection,3,3,0002); for i:=0 to memo1.Lines.Count-1 do begin myline:=Delspecial(memo1.Lines[i],space); ARecordSet.AddNew; for j:=1 to FenGe(myline,space) do begin ARecordSet.fields[j].Value:=substring(myline,space); end; ARecordSet.Update; ARecordSet.MoveNext; end; end;
先用PB连接上数据库,选中你要导入数据的表,鼠标右键点击->edit date->grid
ok,这时应该看到显示字段了,继续在菜单栏->rows->import 然后选择你要导入的数据文件,
看,数据进去了吧,别急,还要继续 在工具条上找一个名叫SAVE CHANGES的图标(把鼠标停在图
标上就可以看到了,一般是第三个工具条的第二个图标)我想DELPHI也应该有这个办法
//将其它字符转换成空格
function TurntoSpace(overall,special:string):string;
var
i,h:integer;
sumstr,temstr:string;
begin
h:=length(overall);
for i:=1 to h do
begin
temstr:=copy(overall,i,1);
if temstr=special then
begin
temstr:=' ';
sumstr:=sumstr+temstr;
end
else
sumstr:=sumstr+temstr;
TurntoSpace:=sumstr;
end;
end;//去除多余的指定字符:**** -> *
function Delspecial(overall,special:string):string;
var
i,h:integer;
flag:boolean;
sumstr,temstr:string;
begin
flag:=false;
h:=length(overall);
for i:=1 to h do
begin
temstr:=copy(overall,i,1);
if temstr<>special then
begin
sumstr:=sumstr+temstr;
flag:=true;
end
else
if flag=true then
begin
sumstr:=sumstr+temstr;
flag:=false;
end;
end;
if sumstr[length(sumstr)]<>special then
sumstr:=sumstr+special;
Delspecial:=sumstr;
end;//去除指定字符:**** ->
function SDelspecial(overall,special:string):string;
var
i,h:integer;
sumstr,temstr:string;
begin
h:=length(overall);
for i:=1 to h do
begin
temstr:=copy(overall,i,1);
if temstr<>special then
begin
sumstr:=sumstr+temstr;
end;
end;
SDelspecial:=sumstr;
end;function Substring(var overall:string;special:string):string;
var
sumstr:string;
subpos:integer;
begin
subpos:=pos(special,overall);
sumstr:=copy(overall,1,subpos-1);
delete(overall,1,subpos);
Substring:=sumstr;
end;function TForm1.FenGe(overall,special:string):Integer;var
i:Integer;
h:Integer;
num:Integer;
begin
h:=Length(overall);
num:=0;
for i:=1 to h do
begin
if copy(overall,i,1)=special then //改为是否为处理字符
num:=num+1;
end;
FenGe:=num;
end;procedure TForm1.BtnTabClick(Sender: TObject);
const
space=#009;
var
i:integer;
myline:string;
begin
for i:=0 to memo1.lines.count-1 do
begin
myline:=TurnToSpace(memo1.lines[i],space);
memo1.Lines [i]:=myline;
end;
end;
procedure TForm1.BtnvfClick(Sender: TObject);
const
space=' ';
var
i,j:integer;
myline:string;
begin
Btnvf.Enabled:=false;
with Tblvf do
begin
TableName:='c:\leberty\ToVFP.dbf';
open;
for i:=0 to memo1.Lines.Count-1 do
begin
myline:=Delspecial(memo1.Lines[i],space);
append;
for j:=1 to FenGe(myline,space) do
begin
fields[j].Value:=substring(myline,space);
end;
post;
end;
end;
end;procedure TForm1.BtnaccessClick(Sender: TObject);
const
space=' ';
var
i,j:integer;
myline:string;
Aconnection,ARecordSet:variant;
begin
Btnaccess.Enabled:=false;
Aconnection:=CreateOleObject('adodb.connection');
Aconnection.open('Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\leberty\Toacc');
ARecordSet:=CreateOleObject('adodb.RecordSet');
ARecordSet.open('acc',Aconnection,3,3,0002);
for i:=0 to memo1.Lines.Count-1 do
begin
myline:=Delspecial(memo1.Lines[i],space);
ARecordSet.AddNew;
for j:=1 to FenGe(myline,space) do
begin
ARecordSet.fields[j].Value:=substring(myline,space);
end;
ARecordSet.Update;
ARecordSet.MoveNext;
end;
end;
最简单的莫如用Excel或vfp直接读入, 然後再整理.