memo接收串口传来的数据比如  _8__9__10__11__1_  中间_代表空格,每次memo不断地增加数据,我只需要取得最后的数据,比如这里的1,如何取得

解决方案 »

  1.   


    for i := length(memo1.lines.text) downto 0 do
    begin
      if (memo1.lines.text)[i] in ['0'..'9'] then
      begin
          .....;
          breadk;
      end;
    end;
      

  2.   


    for i := length(memo1.lines.text) downto 0 do
    begin
      if (memo1.lines.text)[i] in ['0'..'9'] then
      begin
          .....;
          break;
      end;
    end;
      

  3.   

    应该是这样for i := length(memo1.lines.text) downto 1 do
    begin
      if (memo1.lines.text)[i] in ['0'..'9'] then
      begin
          .....;
          break;
      end;
    end;
      

  4.   

    用COPY不行?
    copy(memo.lines[i],length(memo.lines[i])-1,length(memo.lines[i])-1);
      

  5.   

    uses StrUtils;
    RightStr(memo1.text,1);
     
      

  6.   

    得判断最后面有几个空格,用RightStr取出最后一位进行判断,还得判断一下最后的数据是几位数,得多次判断才行。
      

  7.   


    uses StrUtils;function GetLastNumber(str: string): string;
    var
      tmpStr: string;
    begin
      tmpStr := Trim(str);
      Result := RightStr(tmpStr, Length(tmpStr) - LastDelimiter(' ', tmpStr));
    end;
    使用了RightStr等函数,需要引用StrUtils单元,传入你memo1.lines.text就可以取得最后一个数据了
      

  8.   

    把所有的空格换成  #13#10然后 memo.lines.strings[memo.count-1] 就行了
      

  9.   

    var vss:String;
      vss := trim(memo1.lines.text);
      memo1.lines.text := vss;
      结果 := memo1.lines[memo1.lines.count-1];