我在调用某一函数时返回时返回的字符串结果是 str:='0'#$D#$A'<FONT face="宋体"></FONT>'#$D#$A
可以我只想得取str:='0';
请问改如何处理,最好可以直接去掉'0'后面的所有字串
(注‘0’中的0会是其它多位数,'0'后的#$D#$A也可能会变化),所经我只想取第一个字符串

解决方案 »

  1.   

    取位,从左侧开始取,取一位
    str:='0'#$D#$A';
    str:=copy(trim(str,1,1);
      

  2.   

    如果要'0' 冒号也要的话就是3位str:=copy(trim(str,1,3);
      

  3.   

    str:=copy(str,1,3);
    写错,trim不要的
      

  4.   

    你们没有理解意思
    那我如果是str:='1234'#$D#$A'<FONT face="宋体"></FONT>'#$D#$A
    呢,位数是动态的,#$D#$A可能也是动态变化的
    #$D#$A是什么东西啊,
    有没有办法直接截取第一个字符串啊
      

  5.   

    用pos找#$D#$A的位置,然后截取。
      

  6.   


    {另外的方法,delphi2010 编译通过}
    const
      str = 'str:=''';
      Text = 'str:=''0'#$D#$A'<FONT face="宋体"></FONT>'#$D#$A'';{测试一}
    //  Text = 'str:=''1234'#$D#$A'<FONT face="宋体"></FONT>'#$D#$A'';{测试二}
    var
      s: WideString;
      c: WideString;
      i, j: Integer;
      T: WideString;
    begin
      s := StringReplace(Text, str, '', [rfReplaceAll, rfIgnoreCase]);
      T := '';
      for i := 1 to Length(s) do
      begin
        try
          c := s[i];
          j := StrToInt(c);
          T := T + c;
        except
          Break;
        end;
      end;
      T := str + T + '''';
      ShowMessage(T);
    end;
      

  7.   


    const
      str = 'str:=''';
    var
      s: WideString;
      i: Integer;
      T: WideString;
    begin
      {其中 Edit1 是指定的源字符串}
      s := StringReplace(Edit1.Text,str,'',[rfReplaceAll, rfIgnoreCase]);
      i := Pos('''',s);{查找第二个单引号的位置}
      if i <> 0  then
      T := Copy(s,1,i);
      T := str + T;
      ShowMessage(T);
    end;
      

  8.   

    直接vpos := pos(#13#10,str),取leftstr(str,vpos-1)
    或者用tstringlist来取  str := '0'#$D#$A'<FONT face="宋体"></FONT>'#$D#$A;
      stringlist := TStringList.Create;
      stringlist.Text := str;
      str := stringlist.Strings[0];
      stringlist.Free;