s:='qqq\wwww\eer\sdf'for I := 1 to length(s) do 
if s[i]='\' then s[i]:= '_';

解决方案 »

  1.   

    同意 kuangning(郎之间,穷人) 
     
      

  2.   

    哈哈,典型的delphi帮助,  
      while Pos('\',s)>0 do
      begin
        S[Pos('\', S)] := '_';
      end;
      

  3.   

    呵呵,谢谢大家捧场,我看大家都惜墨如今,我还是写出来我的总结吧,希望大家不惜指教,看看还有什么好的办法: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;