使用copy()函数遇到的奇怪问题~!(50分)

  • 主题发起人 主题发起人 liaobear1982
  • 开始时间 开始时间
L

liaobear1982

Unregistered / Unconfirmed
GUEST, unregistred user!
我最近发现一个奇怪的问题.我之前使用copy()函数都是OK的,但不知道为什么,最近在原来代码的基础上增加函数的时候,使用copy()函数的时候既然不成功,每次都返回空.
比如:
s:string;
s:='jfldjfdlajklfdja';
s:=copy(s,1,5);
这样一执行s就变成了空.不知道是不与我程序中引用的单元有关系,因为在新的工程了,这几行代码是肯定没问题,我也已经试过,真觉得奇怪.有人知道这是什么原因吗.
 
这个函数用过很多次,肯定不会有这样的问题。
出现这种情况,应该是s这个变量在其他地方被更改了值。
 
你没一步都跟踪一下S的值,应该不会有这个问题的,除非在别的地方给改掉了。查一下程序问题吧
 
按着Ctrl键,点一下你这个copy函数,看看引用位置是不是在system单元
 
同意楼上,应该是你的copy函数有重名函数
 
s:=copy(s,1,5);
换 s := LeftStr(s, 5);试试,注意引用单元
 
我声明的S变量是局部的其他地方都没用到,所以可以排除前面两位提出的疑问。
按着Ctrl键,点一下copy函数,引用位置是在system单元。
s := LeftStr(s, 5);试了,返回的S都变成空了。。。
真是奇怪了。。。。。。。。。。。。。
我用delete(s,1,5)函数还是可以的。。。为什么copy()、leftstr()就都不行了呢。。。
 
老老实实的写两句,试试看
ShowMessage(s);
tmpStr:=system.copy(s,1,5);
ShowMessage(tmpStr);
 
找到问题的原因了,是我在使用copy()函数代码的前面有一语句后面多了个分号。由于程序编译都没报错,所以一直没注意那里,去掉分号返回值就正确了。。。感觉也奇怪多了个分号既然使 copy()的返回值变成空。。。感谢大家的参与,参与者都有分。。
 
<a href=&quot;www.feiyang.net.cn/index.htm&quot;><img src=&quot;http://www.feiyang.net.cn/img/banner038.gif&quot
width=&quot;166&quot
height=&quot;46&quot
border=&quot;0&quot;></a>
 
多人接受答案了。
 
后退
顶部