注册 登录
编程论坛 VB6论坛

程序运行时跳过了某一行

yao11 发布于 2021-03-15 11:14, 1831 次点击
只有本站会员才能查看附件,请 登录

如附件图所示,程序在运行时,endif下面一句没有被输出,但是yp是有正常加1,除了那一句没有被输出,其他全部正常。在那一行加断点进行运行时,那一行会被输出。以前没有接触过VB,求问大佬们这是怎么回事,谢谢
7 回复
#2
ysr28572021-03-15 11:39
回复 楼主 yao11
end if前面的是满足条件的才输出,而end if后面的是外层循环的才输出,二者输出内容不一样,都不是全部输出。
#3
yao112021-03-15 11:57
回复 2楼 ysr2857
内部循环结束以后跳到外部循环,应该是从endif下那一行开始,也就是说内部循环结束,然后输出那一句,然后才是yp加1吧,可是现在是内部循环结束,输出那一行没有反应,直接yp加1,然后又进到内循环
#4
ysr28572021-03-15 21:04
回复 3楼 yao11
没有试验,观察你的程序,可能不是没有显示,是后面的内容覆盖或者说是替换掉了前面的内容,若要全部显示你得另设控件或者改为如下语句就不会替换掉了:
MSComm1.Output=MSComm1.Output & "#+x  1000#"
#5
yao112021-03-16 08:41
回复 4楼 ysr2857
这句程序一旦输出,外部其他设备就会读取到然后进行动作,现在是外部设备一直没有关于这句的相关动作
#6
wmf20142021-03-16 10:09
根据题主描述“在那一行加断点进行运行时,那一行会被输出”,应该是没清缓冲导致的,加个延时或改成if语句里的样式看看,如下:
capture
Mysegmentecap 2
Mscomm1.Output = "#+X 1000#"
#7
yao112021-03-16 10:30
回复 6楼 wmf2014
昨天加个延时没有用,然后刚才按照内循环的格式写,可以了
#8
yao112021-03-16 10:30
回复 6楼 wmf2014
谢谢指导
1