TC官方合作论坛

标题: 表格删除行。。。意想不到的bug [打印本页]

作者: justme    时间: 2015-5-28 22:25
标题: 表格删除行。。。意想不到的bug
版本:tc5.1
创建2行以上的表格控件。代码:
变量 行数
表格获取大小("表格0",行数,0)
遍历(变量 i=0;i<行数;i++)
    删除表格行(“表格”,i+1)
结束

运行结果:只删除了一半的表格行,比如有2行就只删除1行,4行就删除2行
作者: 言术    时间: 2015-5-28 22:41
本帖最后由 言术 于 2015-5-28 22:43 编辑

i++就相当于i=i+1啊,上面有i++了,为什么下面还i+1呢?这相当于加2了
作者: justme    时间: 2015-5-28 23:05
言术 发表于 2015-5-28 22:41
i++就相当于i=i+1啊,上面有i++了,为什么下面还i+1呢?这相当于加2了

上面的i++是逐行遍历,下面的i+1是跳过固定行,你该复习下遍历语句的用法
作者: chen71512    时间: 2015-5-28 23:50
你的写法问题
第1次遍历时 i=0 所以你删除了表格行 1,是跳过了固定行,没错
第2次遍历时 i=1 而你此时删除的是表格行 2 ,这个表格行 2 你应该知道代表什么吧 即连固定行的第3行
而往后一直遍历 所以得到你这结果
作者: sam7894604    时间: 2015-5-29 03:42
本帖最后由 sam7894604 于 2015-5-29 03:44 编辑

固定行只有一行的话,遍历应该这么写

  1. 遍历(变量 i=1;i<行数;i++)
  2.     删除表格行(“表格”,i)
  3. 结束
复制代码


在初始化 i 的时候就设定跳过固定行


如果你只是要删除非固定行的所有行,可以直接调用
  1. 表格删除非固定项("表格")
复制代码




作者: 言术    时间: 2015-5-29 06:27
justme 发表于 2015-5-28 23:05
上面的i++是逐行遍历,下面的i+1是跳过固定行,你该复习下遍历语句的用法 ...

谢谢指正,是我搞错了
作者: justme    时间: 2015-5-29 09:12
chen71512 发表于 2015-5-28 23:50
你的写法问题
第1次遍历时 i=0 所以你删除了表格行 1,是跳过了固定行,没错
第2次遍历时 i=1 而你此时删除 ...

正解,我没有考虑删除后的表格大小,非软件bug,是我的思路bug,谢谢指正




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1