我想将类似 “num=”的字符转化为“num =”,不能用stringreplace的函数,现在返回的值是第一个“=”前面的string,请问我错在那里?:var s,s1,s2:string
cuti:integer;
s:='.............';//赋值cuti:=4;
s1:=s;
s2:='';
while(cuti>1) do
begin
cuti:=pos('=',s1);
if(cuti>1) then
begin
if(s1[cuti-1]<>' ') then
begin
s2:=s2+copy(s1,1,cuti-1)+' ';
s1:=copy(s1,cuti,length(s1)-cuti);
end;
end
else
break;
end;
s:=s2;

解决方案 »

  1.   

    最后是不是该s:=s2+s1啊!
    如果是这样的字符串 asd =dff=ddd这个程序的结果是什么,第二个执行不到吧
      

  2.   

    如果你想把num=全部替换成num =就用s:=AnsiReplaceStr(s,'num=','num =');
    搞这么复杂干什么?
      

  3.   

    你用WHILE循环,程序错了,你细细看看,因为
    s2:=s2+copy(s1,1,cuti-1)+' ';在S2前边还有个空格,所以S2得用Trim(s2)一下
    如果只想得到num则:
    cuti:=4;
    s1:=s;
    s2:='';
    cuti:=pos('=',s1);
    if(cuti>1) then
    begin
    if(s1[cuti-1]<>' ') then
    begin
    s2:=s2+copy(s1,1,cuti-1)+' ';
    end;
    end
    s:=Trim(s2);
      

  4.   

    说过了  不能用stringreplace的函数
    像“>=” 就不用分了所以一定要检查一下,请看一下条件