关于超想
本站导航
邮件列表
  首页 | 本站产品 | Delphi资料 | 免费资源 | 程序人生 | 软件工程 | 网站设计 | 推荐网站
你所在的位置 -> 主页 -> 超想软件 -> 编程资料 -> delphi -> 开发技巧 -> 数值算法 ->详细
相关内容  
 
 
 
【新品推荐】

  详细内容
 

Trim函数中被人忽略的功能(bug?)
作者: 评价: 上站日期: 2004-04-16
内容说明:
来源:

我一直以为Trim函数的功能是把字串的头尾"空格"去掉,但最近程序出了个非常怪的bug,最后好不容易才发现是对Trim函数的误解,看看它的原码:


function Trim(const S: string): string;
var
  I, L: Integer;
begin
  L := Length(S);
  I := 1;
  while (I < = L) and (S[I] < = ' ') do Inc(I);
  if I >  L then Result := '' else
  begin
    while S[L] < = ' ' do Dec(L);
    Result := Copy(S, I, L - I + 1);
  end;
end;


看到了吗?它用了"< =",就是说不是光去掉"空格",小于"空格"的ASCII码都去掉了!
我原来的资料里末尾有回车/换行(#13#10)符,结果也被去掉了,因此引起了奇怪的bug 
 

 
你所在的位置 -> 主页 -> 超想软件 -> 编程资料 -> delphi -> 开发技巧 -> 数值算法 ->详细
  首页 | 本站产品 | Delphi资料 | 免费资源 | 程序人生 | 软件工程 | 网站设计 | 推荐网站
声明:本站内容除注明原创以外均从网上摘抄,如有侵权请指明。
  如果您对我们的网站有什么意见或者建议,请与我们联系
powered by 建站易上手- V2.0