哈哈,典型的delphi帮助, while Pos('\',s)>0 do begin S[Pos('\', S)] := '_'; end;
呵呵,谢谢大家捧场,我看大家都惜墨如今,我还是写出来我的总结吧,希望大家不惜指教,看看还有什么好的办法:function set_the_teblename(tablename:string):string; //转化'\'为'_',也可以换为'/' ; var kk,jj,j:integer; tmp,tmp1,tmp2,tmp3:string; begin kk:= pos('\',tablename) ; jj:=length(tablename); tmp:=copy(tablename,1,kk-1); if kk=0 then tmp:= tablename; aa[i]:=tmp ; //i,aa数组全局变量为 i:integer; aa: array[0..5] of string; i:=i+1; if kk>0 then begin tmp1:=copy(tablename,kk+1,jj); tmp2:=set_the_teblename(tmp1); //递归调用; end; tmp3:=aa[0] ; for j:=1 to i-1 do tmp3:=tmp3+'_'+aa[j] ; //出栈;把值取出; set_the_teblename:=tmp3; end; 另法: s:string; begin s:=Edit1.Text ; while Pos('\',s)>0 do begin S[Pos('\', S)] := '_'; end; edit2.Text :=s;另法: s:string; begin s:=Edit1.Text ; edit2.Text:=stringreplace(s,'\','_',[rfReplaceAll] ); end;
while Pos('\',s)>0 do
begin
S[Pos('\', S)] := '_';
end;
var
kk,jj,j:integer; tmp,tmp1,tmp2,tmp3:string;
begin
kk:= pos('\',tablename) ;
jj:=length(tablename); tmp:=copy(tablename,1,kk-1);
if kk=0 then tmp:= tablename;
aa[i]:=tmp ; //i,aa数组全局变量为 i:integer; aa: array[0..5] of string;
i:=i+1; if kk>0 then
begin
tmp1:=copy(tablename,kk+1,jj);
tmp2:=set_the_teblename(tmp1); //递归调用;
end; tmp3:=aa[0] ;
for j:=1 to i-1 do
tmp3:=tmp3+'_'+aa[j] ; //出栈;把值取出;
set_the_teblename:=tmp3; end;
另法:
s:string;
begin
s:=Edit1.Text ;
while Pos('\',s)>0 do
begin
S[Pos('\', S)] := '_';
end;
edit2.Text :=s;另法:
s:string;
begin
s:=Edit1.Text ;
edit2.Text:=stringreplace(s,'\','_',[rfReplaceAll] );
end;