我又一个字符串 sqlStr:='insert into tablename(a,b,c,d,e,f,g....) values('sss','ccc','','','sssa'.....)'我想将这个字符串提换成
 sqlStr:='insert into tablename(a,b,c,d,e,f,g....) values('sss','ccc',null,null,'sssa'.....)'
请问如何用程序实现呢? 

解决方案 »

  1.   

    好像你的字符串有问题
    sqlStr:='insert into tablename(a,b,c,d,e,f,g....) values(''sss'',''ccc'','''','''',''sssa''.....)'sqlStr:='insert into tablename(a,b,c,d,e,f,g....) values(''sss'',''ccc'',null,null,''sssa''.....)'这样才对;不知道你所谓的替换是什么意思
      

  2.   

    StringReplace()
    想怎么换就怎么换!
      

  3.   

    我有一段代码,可能把字符串按某个特定字符进行分割(你这里可以是','),然后更换成你要的字串就行了(合成还不简单)// 将一由指定字串分隔的字符串分解到字串列表中
    // 参数: StrV-被分解的字符器  PrtSymbol-分隔符
    // 返回: 字符串列表(TStringList),注意在使用后要将其释放
    function PartitionString(StrV,PrtSymbol: string): TStringList;
    var
      iTemp: integer;
    begin
      result := TStringList.Create;
      iTemp := pos(PrtSymbol,StrV);
      while iTemp>0 do begin
        if iTemp>1 then result.Append(copy(StrV,1,iTemp-1));
        delete(StrV,1,iTemp+length(PrtSymbol)-1);
        iTemp := pos(PrtSymbol,StrV);
      end;
      if Strv<>'' then result.Append(StrV);
    end;/////////////////////////////////////////
    ......
    var
      sl: TStringList;
      i: integer;
    begin
      sl := PartitionString(sqlStr,',');
      sl[x] := 'null';          // x,x+1为null的位置
      sl[x+1] := 'null';
      sqlStr := sl[0];
      for i:=1 to sl.count-2 do
        sqlStr := sqlStr + ',' + sl[i];
      sqlStr := sqlStr + Sl[i];
    end;
      

  4.   

    StringReplace()v函数好像有问题,用我这个函数吧:
    function rp(s,oldstr,newstr:string):string;
    var strlen,oldlen:integer;
        strpos:integer;
        str1,str2:string;
    begin
      strlen:=length(s);
      oldlen:=length(oldStr);
      strPos:=pos(oldstr,s);  if strpos<>0 then
      begin
        str1:=copy(s,1,strPos-1);
        str2:=copy(s,strpos+oldlen,strlen-strpos-oldlen+1);
        result:=str1+newstr+str2;
      end
      else
      begin
        result:=s;
      end;
    end;