|
LV10
站长
本节难度较大,不要求掌握,只有在处理几w几十w数据加载的时候才需要被使用到
源码下载:
虚表操作.zip
(17.15 KB, 下载次数: 200)
效果图如下,我们本节将演示如何将1.txt里面的数据加载到虚表中
我们先看启动窗口创建完毕后执行的代码
窗口程序集名 | 保 留 | 保 留 | 备 注 | 窗口程序集_启动窗口 | | | | 变量名 | 类 型 | 数组 | 备 注 | xb | 彗星虚表操作类 | | 数据 | 文本型 | | 数据_元素 | 文本型 | 0 | 当前选中项 | 整数型 | |
xb. 创建 (取窗口句柄 (), 8, 8, 352, 344 ) 插入项目列 () xb. 显示表格线 (真)xb. 整行选择 (真)xb. 事件_鼠标右键单击 (&事件_鼠标右键单击 )数据 = 到文本 (读入文件 (取特定目录 (3 ) + “1.txt”)) 数据_元素 = 分割文本 (数据, #换行符, )加载数据 ()
插入项目列 ()相当于超级列表框的设置标题头的宽度和文字
变量名 | 类 型 | 静态 | 数组 | 备 注 | 标题组 | 文本型 | | 0 | 标题宽度 | 整数型 | | 0 | i | 整数型 | | |
标题组 = { “序号”, “账号”, “密码” }标题宽度 = { 60, 130, 130 }计次循环首 (取数组成员数 (标题组 ), i )虚表. 插入列 (-1, 标题组 , 标题宽度 , 1 )计次循环尾 ()
分割数组操作是全文的重点,看上去不难,我们就是将数据存储在了数据_元素这个数组里面,难在后面的置标题,大家先留意下这里
数据 = 到文本 (读入文件 (取特定目录 (3 ) + “1.txt”)) 数据_元素 = 分割文本 (数据, #换行符, )
接下来是加载数据()
虚表. 全部删除 ()虚表. 置表项数 (取数组成员数 (数据_元素 )) 虚表. 事件_填充表项 (&事件_填充表项 )
虚表.置表项数就是要添加的虚表行数,这里不能写错了
虚表.事件_填充表项对应的是虚表的渲染过程,我们前面讲过了,虚表只是实时渲染出眼睛能够看到的部分,也就是当虚表需要开始渲染的时候,会触发响应子程序事件_填充表项(),&事件_填充表项称为子程序指针,类似的写法还有启动线程(&子程序1),那我们来看看事件_填充表项()是如何写的
变量名 | 类 型 | 静态 | 数组 | 备 注 | 超级列表框项目 | 超级列表框项目 | | | 账号密码 | 文本型 | | 0 |
超级列表框项目 = 指针到列表框项目 (项目指针 )账号密码 = 分割文本 (数据_元素 [超级列表框项目.表项索引 + 1 ], “==”, )如果真 (超级列表框项目.子项索引 = 0 )写到内存 (到文本 (超级列表框项目.表项索引 + 1 ), 标题指针, )如果真 (超级列表框项目.子项索引 = 1 )写到内存 (账号密码 [1 ], 标题指针, )如果真 (超级列表框项目.子项索引 = 2 )写到内存 (账号密码 [2 ], 标题指针, )
代码看上去很复杂,这实际上是内存转换的写法,主要目的就是告诉大家当前正在插入哪一行哪一列
超级列表框项目.表项索引的结果是当前操作的行
超级列表框项目.子项索引的结果是当前操作的列
重点:这里不像超级列表框在置标题的时候需要填写第几行,只需要填写列就可以了,置标题也就是写到内存()函数,这句代码很重要
账号密码 = 分割文本 (数据_元素 [超级列表框项目.表项索引 + 1], “==”, )
超级列表框项目.表项索引就是当前操作的行,但是在虚表和超级列表框中都有一个特点,就是从0开始,也就是0表示第一行或第一列
但是数组是从1开始的,也就是最小是数组[1]
我们在设计的时候就是第一个成员user1要插入第1行,第2个成员user2需要插入第2行
比如我们正在插入第7行,那么超级列表框项目.表项索引=6(从0开始),数据_元素 [超级列表框项目.表项索引 + 1]也就是数据_元素 [7],取出的就是user7==jiasias
所以数据_元素 [超级列表框项目.表项索引 + 1]取出的就是当前行对应的账号==密码
接下来就是一个再次分割,得到一个新的数组账号密码,然后通过写入内存去置表格数据
我们还绑定了一个菜单事件
这里还是没啥难度
接下来演示的是菜单操作,这个前面学过了,但是我们的目的是教会大家如何取虚表的表项的值
但是修改虚表内表项的值则显得比较难了,还记得前面让大家注意的数组数据_元素吗,由于虚表不支持修改,因此我们只能去修改数组,然后重新加载,我们这里对选中行的密码改成了66666
数据_元素 [当前选中项 + 1 ] = 虚表. 取标题 (当前选中项, 1 ) + “==” + “66666”加载数据 ()
(点击返回课程目录:https://shuxiangyage.net/forum.php?mod=viewthread&tid=1134) |
|