百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

「按键精灵 VS 易语言」数组操作 按键精灵和易语言哪个容易过检测

yuyutoo 2024-10-23 16:35 1 浏览 0 评论

今天和大家一起分享按键精灵和易语言分别在数组使用方面的种种区别和注意事项!

要求 : 定义一个文本型的变量, 把这个字符串中的每一个字符取出来放到数组内,然后删除这个数组指定的下标,形成一个新数组!


分析: 如果单以是为了完成这道题目作为出发点来看,我会选择使用易语言来完成,原因很简单.核心库(数组操作)里有直接封装好的命令供我们使用,简单方便. 如果以学习的角度作为出发点,那就要选择使用按键精灵了,原因同样简单,因为按键精灵没有提供相关的命令.我们能做的只有写一个函数出来解决问题.

所有源码均可在群内下载: 群号 31690552


下边我们开始第一步:把字符串内的每一个字符取出来放到数组内

按键精灵代码 如下图:

定义一个文本型的变量a,分别使用len函数和mid函数来获取这个字符串内的每一个字符,然后保存到arr数组内,这里需要说明的是,如果是在循环内定义这个动态数组的话,一定记得使用 preserve 来保护一下这个数组之前赋的值,.如果不保护,那么很遗憾,之前所有赋的值都是空值. 如下图所示:

当然,我们也可以直接在循环外定义这个数组,那么也就无须保护了,如下图所示:


下边我们来写在易语言中的这一步代码:

为了保持2者的可对比性,我这里都使用了同样的变量名, 这个时候易语言在数组操作方面的便捷性已经初露锋芒. 在按键精灵中,我们实现这一步用的是给数组内的元素赋值的方法来实现. 如果你想要增加数组元素,那么我们要重新定义数组的下标长度才可以,而易语言这时候就不需要了, 我们只需初始化数组的时候,把数组定义为动态数组,下标为0即可,

然后通过加入成员这条命令,数据将自动加入到数组的尾部,并通过重新自动自定义数组来增加数组的下标!

这里使用了到全角的这条命令. 这是因为在易语言中封装的Len函数和在按键精灵中封装的Len函数细微差别所致.当然我们都知道,一个汉字占2个长度. 可是在按键精灵中做了处理,每位字符都只占一个长度.这样就不用在考虑其他的因素了,个人感觉这一点比较爽.

当然,如果你一定要用类似按键精灵中给元素赋值的方法来实现, 我也无话可说,毕竟条条道路都通罗马.只要能实现就好.

下图为通向罗马的另一条路:

所有源码均可在群内下载: 群号 31690552

通过调试可以得出,这条道路同样通向罗马城. 至于大家走哪条路,完全凭个人喜欢而定.这里不做评价


紧接着我们到了第二步 . 删除数组指定下标形成一个新数组:

首先已按键精灵为例.因为在按键精灵中没有直接删除数组指定下标的命令,我们还需要自己写函数,所以这里就先以按键为先了哦. (排名不分先后)

直接上代码图.然后具体分析:

我们先不看其它.先看上图数字所指几处.第1处,function 说明它是一个函数,既然是函数,那么它一定会有返回值,当然,也不是一定要有返回值. 如果你写的函数没有返回值,那么我建议你还是用sub替代的好,(这里不多做解释) ,既然有返回值,那么第一反应就是去看第3处所指向的代码 . 从代码可以看出,这个函数存在2种返回结果. 返回的都是数组 . 回过头来看第2处. 我们可以知道这个函数有2个参数,第1个传的是数组. 第2个传的是整数型的数组下标. 建议大家查看函数的时候先看这3点,然后在具体查看其中代码哦!


进入函数内部代码区:

首先判断了一下传入要删除这个数组的下标是否在范围内.如果不在范围内,直接返回了这个原数组, 也就是上图代码第19行所示!

如果传入的第2个参数符合条件的话,这里定义了一个乱码组成的文本变量 . 并且把变量值赋给了我们要删除的数组元素, 通过join函数把这个数组合并成一个字符串,然后我们在进入处理.

如下图所示:

由上图中可以得出如下信息:

在第6行调用了这个函数,传入了2个参数,第一个为数组arr ,第二个为要删除的数组下标,我这里传入的是下标2. 第13行的调试结果如红框所示.已经把下标为2的数组元素替换成了指定的内容.

这时候我们在来看一下这个函数代码图:

如下图:

上图红框所示区域内,通过了使用replace替换函数, left ,right 等函数 ,把这个字符串做了处理, 如果不做如上处理,将会出现以下3种情况, 如果所示:

通过对这个字符串的处理,把前后中间多余的"-"符号去掉,这时候就已经可以对这个字符串进行分割处理,使之生成一个新数组,然后返回给这个函数了!

最后来看一下效果 :

大家是不是感觉有点小麻烦, 那下边我们来看一下不麻烦的哦


易语言中实现这一步的代码图:

(这里需要说一下的是:按键精灵中数组下标是从0开始,易语言中的数组下标是从1开始)

感谢:白小丁同学

相关推荐

mysql数据库如何快速获得库中无主键的表

概述总结一下MySQL数据库查看无主键表的一些sql,一起来看看吧~1、查看表主键信息--查看表主键信息SELECTt.TABLE_NAME,t.CONSTRAINT_TYPE,c.C...

一文读懂MySQL的架构设计

MySQL是一种流行的开源关系型数据库管理系统,它由四个主要组件构成:协议接入层...

MySQL中的存储过程和函数

原文地址:https://dwz.cn/6Ysx1KXs作者:best.lei存储过程和函数简单的说,存储过程就是一条或者多条SQL语句的集合。可以视为批文件,但是其作用不仅仅局限于批处理。本文主要介...

创建数据表:MySQL 中的 CREATE 命令深入探讨

数据库是企业日常运营和业务发展的不可缺少的基石。MySQL是一款优秀的关系型数据库管理系统,它支持数据的插入、修改、查询和删除操作。在数据库中,表是一个关系数据库中用于保存数据的容器,它由表定义、表...

SQL优化——IN和EXISTS谁的效率更高

IN和EXISTS被频繁使用在SQL中,虽然作用是一样的,但是在使用效率谁更高这点上众说纷纭。下面我们就通过一组测试来看,在不同场景下,使用哪个效率更高。...

在MySQL中创建新的数据库,可以使用命令,也可以通过MySQL工作台

摘要:在本教程中,你将学习如何使用MySQLCREATEDATABASE语句在MySQL数据库服务器上创建新数据库。MySQLCREATEDATABASE语句简介...

SQL查找是否"存在",别再用count了

根据某一条件从数据库表中查询『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECTCOUNT(*)呢?无论是刚入道的程序员新星,还是精湛沙场多年的程序员老白,都是一如既往...

解决Mysql数据库提示innodb表不存在的问题

发现mysql的error.log里面有报错:>InnoDB:Error:Table"mysql"."innodb_table_stats"notfo...

Mysql实战总结&面试20问

1、MySQL索引使用注意事项1.1、索引哪些情况会失效查询条件包含or,可能导致索引失效如果字段类型是字符串,where时一定用引号括起来,否则索引失效...

MySQL创建数据表

数据库有了后,就可以在库里面建各种数据表了。创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性)约束的过程。后面也是通过SQL语句和Navicat...

MySQL数据库之死锁与解决方案

一、表的死锁产生原因:...

MySQL创建数据库

我的重点还是放在数据表的操作,但第一篇还是先介绍一下数据表的容器数据库的一些操作。主要涉及数据库的创建、修改、删除和查看,下面演示一下用SQL语句创建和用图形工具创建。后面主要使用的工具是Navica...

MySQL中创建触发器需要执行哪些操作?

什么是触发器触发器,就是一种特殊的存储过程。触发器和存储过程一样是一个能够完成特定功能、存储在数据库服务器上的SQL片段,但是触发器无需调用,当对数据库表中的数据执行DML操作时自动触发这个SQL片段...

《MySQL 入门教程》第 17 篇 MySQL 变量

原文地址:https://blog.csdn.net/horses/article/details/107736801原文作者:不剪发的Tony老师来源平台:CSDN变量是一个拥有名字的对象,可以用于...

关于如何在MySQL中创建表,看这篇文章就差不多了

数据库技术是现代科技领域中至关重要的一部分,而MySQL作为最流行的关系型数据库管理系统之一,在数据存储和管理方面扮演着重要角色。本文将深入探讨MySQL中CREATETABLE语句的应用,以及如何...

取消回复欢迎 发表评论: