auto.js B0044 数据库检索答案 (挑 战 答 题) 2021-11-03

importClass(android.database.sqlite.SQLiteDatabase);

/**
 * @description: 从数据库中搜索答案
 * @param: question 问题
 * @return: answer 答案
 */
 function getDBAnswer(question, table_name) {
    var dbName = "tiku20211120.db";//题库文件名
    var path = files.path(dbName);
    var db = SQLiteDatabase.openOrCreateDatabase(path, null);
//     Select 列名 from 表名 where 列名 like 关键字 (查询列名中带有关键字的所有项)
// (1) like ‘ab%’ 表示查询以ab开头的所有项
// (2) like ‘%ab’ 表示查询以ab结尾的所有项
// (3) like ‘%ab%’表示查询任何位置包含ab的所有项
// 比如 SELECT * FROM [user] WHERE u_name LIKE ‘%三%’
// 将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。
//String name = cursor.getString(cursor.getColumnIndex("name"));
    sql = "SELECT * FROM " + table_name + " WHERE question LIKE '%" + question + "%'"
    var cursor = db.rawQuery(sql, null);
    if (cursor.moveToFirst()) {
        var a = cursor.getString(cursor.getColumnIndex("a"));
        var ans = cursor.getString(cursor.getColumnIndex("ans"));
        cursor.close();
        return a+ans;
    }
    else {
        console.error("题库中未找到答案");
        cursor.close();
        return '';
    }
}

//挑战答题
function ChallengeAnswar() {
    sleep(1000)
    // className("android.view.View").text("查看提示").findOne().click();
    // sleep(1000)  就是去掉填空、来源、和含有反斜杠的
    //1.首先把填空题截取掉,就是前两个控件。把来源以后的都截取掉
    widget = className("android.view.View").find();
    log(widget.length)
    jj = 0
    for (i = 0; i < widget.length; i++) {
        widgetText = widget[i].text();
        if (i == 14 || i == 17 || i == 20 || i == 23 || i == 26) {
            // log(i + ":" + widgetText)
        }
    }
    
    //打印题目
    log(widget[14].text())
    var Cquestion=widget[14].text()//获取题目内容
    //题目进行字符串分割查找
    // var Cquestion="根据《中华人民共和国土地管理法》,  国务院 统一负责全国土地的管理和监督工作。";
    var CNum=Cquestion.length;
    var CNumR=Cquestion.length;
    var GetAns='';
    for(var n=0;n<CNum;n++){
        // log(n)
        // log(CNumR--)
        CNumR=CNumR-2;
        // log(Cquestion.substr(0,CNumR))
        GetAns=getDBAnswer(Cquestion.substr(0,CNumR), "TiKu")
        if (GetAns==""){
            // log("Num xx not find")
            // log(Cquestion.substr(0,CNumR))
        }else{
            log("find it ..........................................")
            log(GetAns)
            break;
        }
    }

    return GetAns
}

ChallengeAnswar();

// log(getDBAnswer(Cquestion.substr(0,10), "TiKu"))





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值