列表uiList
# 列表控件:
复制列表控件更像一个表格,有点类似execl或者数据库。他可以存储2维数据,例如我们可以创建一个内容列表,列名就是标题,内容。
或者创建一个账号列表,列名就可以是账号,密码
# 添加控件:
复制直接拖拽列表控件到设计器即可创建
# 列表字段添加:
# 添加数据:
# 如何获取列表值:
方法1:直接代码上右键可视化获取,例如我们要获取账号
方法2:通过代码获取,例如我们要获取账号的值
复制var 账号列表= uiList.findByID(控件ID="zhanghao");
var 账号=账号列表.getString(列名="账号")
printl(账号)
# findByID(id):通过列表控件的id获取列表控件,返回值类型uiList
复制var listID= uiList.findByID(控件ID="zhanghao");
# add(V8Array):添加一行数据,这里注意参数类型是一个数组,例如列表有两个字段账号密码那么添加一行数据代码如下
复制//添加账号密码
listID.add([账号="abc",密码="123456"])
//或者
var row=[账号="abc",密码="123456"];
listID.add(row);
# addArray(V8Array,int);添加多行数组数据,可以把多行数据添加到列表中
# 参数1是一个二维度数组类型,他可以把多个字段的多行数据导入
# 参数2是如果导入的字段数组长度不一致以第几个字段长度作为基准。
复制//首先把账号存到数组
var id=["张三","李四","王五"]
var pass=["1","2","3","4"]
//第一个参数是数组,第二个参数如果以id的长度作为基准则设置0,以密码作为基准设置1,因为账号数组的长度是3,密码数组长度是4,不一致的情况下以谁为准
listID.addArray([id,pass],0);
# clear()清空表
复制listID.clear();
# delete()删除当前行
复制listID.delete();
# moveToFirst():让游标选中第一行
复制//移动到第一行
listID.moveToFirst()
# moveNext(循环切换=true):让游标选中下一行,参数循环切换如果是true移动到最后一行后重新回到第一行,返回值是true,如果设置参数为false,则移动到最后一行后返回false
复制 //移动到下一行
var res= listID.moveNext(循环切换=true)
//循环切换=true时始终返回true
//循环切换=false时 如果没到最后一行返回true,如果到最后一行则返回false
print(res)
# moveToPrevious():移动到上一行
复制//向下移动2行
listID.moveToPrevious();
# move(int):让游标移动几行
复制//向下移动2行
listID.move(2);
# moveToLast(int):让游标切换到最后一行
复制//移动到最后一行
listID.moveToLast();
# moveToPosition(int):让游标移动到指定行
复制//移动到第一行
listID.moveToPosition(0);
# execSQL(String sql):执行sql语句
复制//删除id=1的行
listID.execSQL(sql语句="delete from uiList where ID=1");
# getColumnCount():获取列数,获取当前表有多少字段
复制//获取列数
listID.getColumnCount();
# int getColumnIndex(String colName)通过列名获取所在第几列 返回值:数字类型
复制//通过列名获取所在第几列
listID.getColumnIndex("账号");
# String getColumnName(int); 通过列号获取列名,返回值类型:字符
复制//通过列号获取列名
listID.getColumnName(0);
# V8Array getColumnNames()获取全部列名,返回值类型:数组
复制//获取全部列名
listID.getColumnNames();
# int getCount() 获取条数,返回值类型:数字
复制//获取条数
listID.getCount();
# int getCursorSetp() 查询当前选中行号 返回值类型:数字
复制//获取当前行号
listID.getCursorSetp();
# int getCursorSetp(); 查询当前进度记录;就是软件退出后这记录依然保存
复制//获取当前行号
listID.getCursorSetp();
# String getString(String 列名); 通过列名获取值;参数1=列名;返回类型=String;
复制//通过列名获取值
listID.getString(列名="账号");
# String getStringI(int 列号); 通过列号获取值;参数1=列号;返回类型=String;
复制//通过列名获取值
listID.getStringI(列号=0)
# boolean isLast() 是否最后一条 是返回true否返回false
复制//是否最后一条
listID.isLast()
# int select(String sql) 数据查询过滤,通过select查询语句可以对列表进行条件筛选 返回查询到的条数
复制//数据查询过滤
listID.select("select * from uiList where 1=1");
# setCursorSetp(int num) 保存当前进度,指定行进行保存进度,方便下次重启软件自动加载进度。
复制//数据查询过滤
listID.setCursorSetp(1);
# update(String 字段名,String 字段值); 更新游标所在行数据
复制//更新游标所在行数据
listID.update(字段名="账号",值="赵四");
# 采集数据存入列表
想要给列表动态采集添加数据需要几个步骤
首先要了解列表如何添加数据
# 比如我们有一个列表
ID列表 控件的id=zhanghao
账号 | 密码 |
---|---|
张三 | 123456 |
李四 | 123456 |
# 1.先获取列表控件
复制var listID= uiList.findByID(控件ID="zhanghao");
这个是获取控件id是zhanghao的列表控件并存入变量listID
# 给列表添加一行数据
listID.add([“张三”,”123456”]) //add的参数是数组,数组长度是字段数当前字段是2个
# 如何给列表同时添加多行数据
复制var 账号数组=["张三","李四"];
var 密码数组=["123456","123456"]
listID.addArray ([账号数组,密码数组] ,0);
我们知道如何给列表添加数据以后,剩下就是如何把数据采集到数组的问题
**采集数据到数组
比如我们要采集的数据是这样的格式
复制<div id="name">赵六</div><div id="pass">123456</div>
<div id="name">孙7</div><div id="pass">123456</div>
<div id="name">周8</div><div id="pass">123456</div>
如何采集我们可以使用软件自带的工具 分割采集,或者正则采集
正则采集可以使用chatgpt工具,可以这样问
请帮我把这个数据采集出所有的用户名到数组 账号数组,采集所有密码到密码数组,要求使用js 的正则采集
得到代码以后贴入软件测试下是否能得到两个数组然后使用上面的给列表添加多行数据的方法加入列表即可
listID.addArray ([账号数组,密码数组]);
以下是完整代码
复制var nameRegex = /<div\s+id\s*=\s*"name">([^<]+)<\/div>/gi; // 匹配所有用户名
var passRegex = /<div\s+id\s*=\s*"pass">([^<]+)<\/div>/gi; // 匹配所有密码
var nameList = [];
var passList = [];
var html = '<div id="name">赵六</div><div id="pass">123456</div><div id="name">孙7</div><div id="pass">123456</div><div id="name">周8</div><div id="pass">123456</div>';
var match = nameRegex.exec(html);
while (match != null) {
nameList.push(match[1]); // 将用户名存储到数组中
match = nameRegex.exec(html);
}
var match = passRegex.exec(html);
while (match != null) {
passList.push(match[1]); // 将密码存储到数组中
match = passRegex.exec(html);
}
console.log(nameList); // 输出所有的用户名数组
console.log(passList); // 输出所有的密码数组
listID.addArray ([nameList,passList],0);
上次更新: 2024/11/03, 18:44:54
← 浏览器webView 简介→