首页  编辑  

POS在Delphi 2006和Delphi 7下的兼容性问题

Tags: /超级猛料/String.字符串处理/   Date Created:

POS 在Delphi 2006和Delphi 7下的兼容性问题

kingron | 30 一月, 2007 04:31

Pos在D2006和D7下的兼容性是有问题的,对于同一个字符串,例如下面的字符串:

'{02326456-0405-4600-0371-037100000001},test-1,2006-10-30 04-30-38.msg,265.35 KB,10/30/2006 4:30:31 AM,10/30/2006 4:32:30 AM,E113 °34 ′22.55″,N22 °22 ′28.46″,E113 °34 ′22.60″,N22 °22 ′28.40″,1'

Pos在D7和D2006下的返回值不一致。原因在于D2006的Pos可以处理Unicode字符,D7下不能处理Unicode字符。D2006下,一个Unicode字符会被当作一个长度为1的字符串,而D7下会把Unicode字符作长度为2进行计算。所以在编码的时候一定要注意。

解决方法:使用AnsiPos代替Pos。