在线等待,简单过程问题 (30分)

  • 主题发起人 主题发起人 c2008
  • 开始时间 开始时间
C

c2008

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TGprsFrm.CopyWatch(GprsNo:string;SendInfo:string)
{发送过程}
var I:integer;
userid: array[1..12] of char;
src: array[1..1024] of char;
len: cardinal;
s:string;
buf:arr;
begin
for i := 1 to length(GPRSNo) do userid := (GPRSNo);
len := length(SendInfo);
if len > 0 then
begin
s := strtohex(SendInfo);
for i := 1 to length(s) do src := s;
len := length(s);
end;
function_do_send_user_data(@userid[1], @src[1], len, @buf[1])
//发送数据
memo1.Lines.Add('向 ' + GPRSNo + ' 发送数据:' + sendinfo);
end;


procedure TGprsFrm.N19Click(Sender: TObject);//调用过程
var neirong,GprsNo:string;
B:integer;
begin
B:=0;
while B< CBLVInfo.items.Count-1 do
begin
neirong := 'FEFE66B8' +
trim(CBLVInfo.Items.Item.SubItems[3]) +
backbiaohao(trim(CBLVInfo.Items.Item.SubItems[4])) + '0000' +
trim(CBLVInfo.Items.Item.SubItems[5]) + '001200';
GprsNo:=CBLVInfo.Items.Item.SubItems[0];
showmessage(inttostr(B))
//在这里正常(如=1)
CopyWatch(GprsNo,neirong);
showmessage(inttostr(B));//这里B的值就不正常了(>1大了很多且不固定是为什么,怎么解决)
sleep(1500);
B:=B+1;
end;
end;
//有没有高手哦,扎个没人回答哦,过程中的代码单独执行是完全正常的。
 
看看返回值,我出现过这种情况
for i := 0 to length(str) do //str: string;
s := str
//s : array of char;
其中s[0] = #0
str[0] = #0
你把数组下标由1改为0试试,其他不变。
同时我个人认为应该把有些变量初始化。
 
CopyWatch(GprsNo,neirong);
不执行这个过程,B值正不正常???
 
to yl0971 问题还是没有解决哦
to app2001 不执行这个过程是正常的。
问题出在这句只要不执行就是正常的,但怎么解决呢。
function_do_send_user_data(@userid[1], @src[1], len, @buf[1])
//发送数据
 
另做个别的调用过程,看那个过程执行对不,如果没问题,则发送过程应该没问题,但在这段代码中对b的操作只有b := b + 1按道理调用发送过程不应该影响其值,在发送过程中也没有对b进行操作.单步又没有问题,运行期内存有问题吗?好像也不应该啊,说不过去.有意思,帮你顶.
 
是不是全局中还有个b变量?
 
多人接受答案了。
 
后退
顶部