易语言编程系统全书(第五章 )

合集下载

易语言sys驱动加载写法

易语言sys驱动加载写法

易语言是一种中国特有的编程语言,主要用于简化计算机编程操作。

而驱动加载是一种操作系统级别的操作,通常需要使用特定的API和驱动程序。

在易语言中,可以使用系统API来加载驱动程序,但是需要使用特定的函数和语法。

以下是一个使用易语言加载驱动程序的示例代码,它使用了Windows API中的`LoadLibrary`函数:```python# 导入系统APIimport api.kernel.2# 加载驱动程序driver_path = "C:\\path\\to\\driver.sys"handle = api.kernel.2.LoadLibrary(driver_path)# 检查驱动程序是否加载成功if handle != 0:print("驱动程序加载成功")else:print("驱动程序加载失败")```这段代码中,我们首先导入了`api.kernel.2`模块,这是Windows API中的一个模块,用于操作系统的内核级操作。

然后,我们指定了驱动程序的路径`driver_path`,并使用`LoadLibrary`函数加载它。

如果加载成功,函数返回一个非零值,否则返回零。

最后,我们检查返回值是否为零,如果是则输出“驱动程序加载成功”,否则输出“驱动程序加载失败”。

需要注意的是,易语言中的系统API和驱动加载操作可能存在一定的限制和特殊要求,具体实现方式可能会因操作系统版本和易语言版本而有所不同。

因此,在实际使用中需要根据具体情况进行调整和修改。

此外,为了正确地加载驱动程序,还需要了解驱动程序的架构和功能,以及操作系统对驱动程序的要求和限制。

这些信息通常可以在驱动程序的文档和说明中找到。

易语言独立编译和静态编译

易语言独立编译和静态编译

易语言独立编译和静态编译易语言是一种基于WINDOWS操作系统的高级编程语言,易语言由广东省深圳市“计算机语言推广活动领导小组”推出,并由易语言集团研发推广。

易语言的语法简单,易于学习和使用,是一种适合初学者编程的编程语言。

易语言的独立编译和静态编译是两种常用的编译方式,下面就分别介绍一下。

1、独立编译定义独立编译是指将易语言程序代码单独编译成一个独立的可执行文件,而不需要依赖于易语言环境即可运行。

使用独立编译,可以使易语言程序在不安装易语言环境的情况下也能够运行。

2、独立编译的实现方法以易语言版本V4.0为例,独立编译的实现方法如下:(1)首先将易语言程序的源代码文件(扩展名为.yli)打开;(2)选择“项目”菜单,在弹出的菜单中单击“项目属性”命令;(3)在“项目属性”对话框中,选择“编译选项”选项卡,勾选“生成独立可执行文件”选项;(4)单击“确定”按钮,然后再单击“生成”按钮即可生成独立可执行文件。

3、独立编译的优点和缺点优点:(1)易于传播——独立编译的程序不需要安装易语言环境即可直接运行,所以可以方便地拷贝和传播;(2)节省空间——独立编译的程序文件比较小,可以节省硬盘空间;(3)保护源代码——独立编译的程序与源代码分离,可以避免源代码泄露。

缺点:(1)程序运行速度较慢——独立编译的程序需要提前加载所有的函数库,运行速度较慢;(2)无法动态升级——因为独立编译的程序不依赖于易语言环境,所以无法通过动态升级方式更新程序。

静态编译是指将易语言程序代码编译成一个可执行文件,并且将所有的函数和库文件都打包到一个可执行文件中,程序运行时不需要依赖于外部的函数库。

使用静态编译,可以使程序运行更加快速和稳定。

优点:(1)程序运行速度更快——因为静态编译的程序将所有的函数和库文件都打包到一个可执行文件中,程序运行时不需要依赖于外部的函数库,所以程序运行更快;(2)程序运行稳定——由于程序不需要依赖于外部的函数库,所以遇到函数库文件被删除或者系统配置错误等情况时,程序仍然可以正常运行。

易语言virtualprotectex写法

易语言virtualprotectex写法

易语言virtualprotectex写法易语言是一种初学者友好的编程语言,其简单易懂的语法和丰富的函数库使得编写程序变得容易。

而其中的VirtualProtectEx函数,作为操作系统提供的一个重要功能,用于修改进程的内存保护属性。

本篇文章将以"易语言VirtualProtectEx写法"为主题,详细介绍如何使用易语言中的VirtualProtectEx函数,并给出一步一步的回答。

首先,我们需要了解VirtualProtectEx函数的基本功能和用法。

VirtualProtectEx函数被用来修改进程内存页的保护属性,包括读取、写入、执行和访问权限。

通过修改这些保护属性,我们可以实现对内存的直接操作,以达到我们的编程需求。

在易语言中,我们首先需要导入VirtualProtectEx函数的声明,它位于kernel32.dll库中。

将下面的代码放在程序的开头,以引入VirtualProtectEx函数的声明:DECLARE FUNCTION VirtualProtectEx LIB "kernel32.dll" ALIAS "VirtualProtectEx" (BYVAL hProcess AS LONG, BYREF lpAddress AS ANY, BYVAL dwSize AS LONG, BYVAL flNewProtect AS LONG, BYREF lpflOldProtect AS LONG) AS LONG在这个声明中,我们可以看到VirtualProtectEx函数的参数,包括进程句柄(hProcess),内存地址(lpAddress),内存大小(dwSize),新的保护属性(flNewProtect)和旧的保护属性(lpflOldProtect)。

接下来,我们需要获取目标进程的句柄。

在易语言中,可以使用OpenProcess函数来获取指定进程的句柄。

易语言读取文本第二行

易语言读取文本第二行

易语言读取文本第二行1. 简介在编程中,读取文本文件是一项常见的任务。

易语言作为一种简单易学的编程语言,也提供了相应的函数来实现这一功能。

本文将详细介绍如何使用易语言读取文本文件中的第二行内容。

2. 准备工作在使用易语言读取文本文件之前,我们需要先创建一个文本文件,并向其中写入一些内容。

可以使用任意文本编辑器来创建一个名为test.txt的文本文件,并在其中写入以下内容:第一行第二行第三行确保将test.txt保存在与你的代码文件相同的目录下。

3. 代码实现接下来我们将使用易语言编写代码来读取test.txt中的第二行内容。

首先,在程序开始之前,我们需要导入相关的模块。

打开易语言集成开发环境(IDE),点击“模块”菜单,选择“导入模块”,然后选择“系统模块”和“字符串处理模块”。

这两个模块分别提供了操作系统和字符串处理相关的函数。

然后,在主程序中添加如下代码:// 导入模块导入系统模块, 字符串处理模块// 主程序开始子程序主程序// 定义变量变量文件路径字符串 = "test.txt"变量第二行内容字符串// 打开文件文件句柄 = 打开文件(文件路径, 1)// 读取第二行内容读取行(文件句柄)第二行内容 = 读取行(文件句柄)// 关闭文件关闭文件(文件句柄)// 输出第二行内容输出框.输出文本(第二行内容)结束子程序以上代码首先定义了一个变量文件路径,用于存储要读取的文本文件路径。

在这个例子中,我们将其设置为test.txt。

然后定义了一个变量第二行内容,用于存储读取到的第二行文本。

接下来,我们使用打开文件函数打开要读取的文本文件,并将返回的文件句柄保存在变量文件句柄中。

函数中的参数1表示以只读方式打开文件。

然后,通过调用两次读取行函数来跳过第一行并获取第二行的内容,并将其保存在变量第二行内容中。

最后,使用关闭文件函数关闭已打开的文本文件,并使用输出框组件的输出文本方法将获取到的第二行内容输出到控制台。

易语言获取读写权限模块

易语言获取读写权限模块

易语言获取读写权限模块易语言是一种面向中文编程的高级编程语言,因此在处理中文编程方面有着很大的优势。

易语言提供了一个读写权限模块,可以用于管理文件和文件夹的读写权限。

在本文中,我们将详细介绍易语言获取读写权限模块的使用方法和相关知识。

首先,我们需要明确什么是读写权限。

读写权限是操作系统中对文件和文件夹进行读取和写入操作的权限。

在某些情况下,我们可能需要以管理员权限运行程序才能对系统文件或其他用户文件进行读取和写入操作。

没有足够的读写权限可能会导致程序运行失败或无法正常访问文件。

在易语言中,我们可以通过使用"读写权限模块"来获取文件和文件夹的读写权限。

该模块提供了一些方法和函数,用于获取和修改文件的权限设置。

下面,让我们来看一下如何使用这个模块。

首先,我们需要从易语言官方网站下载并安装"读写权限模块"。

安装成功后,在易语言的开发环境中,我们可以在插件列表中找到该模块。

在开始使用读写权限模块之前,我们需要先了解一些基本的权限概念。

在Windows操作系统中,每个文件和文件夹都有一个安全标识符(SID),用于标识文件或文件夹的所有者和权限设置。

每个SID都有一个唯一的标识符,由一串数字和字母组成。

权限设置包括几个不同的权限,如读取权限、写入权限、执行权限等。

获取文件和文件夹的读写权限可以通过一些函数和方法来实现。

以下是一些常用的函数和方法:1. GetFileSecurity:用于获取文件或文件夹的安全设置信息。

2. SetFileSecurity:用于设置文件或文件夹的安全设置信息。

3. GetSecurityDescriptorDacl:用于获取文件或文件夹的访问控制列表(ACL)。

4. SetSecurityDescriptorDacl:用于设置文件或文件夹的访问控制列表(ACL)。

5. ConvertSidToStringSid:将SID转换为字符串格式。

易语言申请内存空间

易语言申请内存空间

易语言申请内存空间全文共四篇示例,供读者参考第一篇示例:易语言是中国自主研发的编程语言,它具有简单易学、功能丰富的特点,广泛应用于各种软件开发领域。

在进行软件开发的过程中,申请内存空间是一个非常重要的操作,它可以帮助程序在运行过程中顺利地存储和管理数据。

本文将介绍在易语言中如何申请内存空间,并且详细解释各种内存管理操作的原理和步骤。

在易语言中,申请内存空间的主要函数是Mem_Alloc,该函数可以根据指定的大小申请一块内存空间,并返回该内存空间的地址。

内存大小的单位是字节,可以根据实际需求来申请不同大小的内存空间。

下面是一个简单的示例代码:```Varp: intsize: intBeginsize := 1024p := Mem_Alloc(size)If p = 0 ThenMessageBox("内存申请失败!")ElseMessageBox("内存申请成功,地址为:" + StrHex(p))EndIfEnd```以上代码首先定义了两个变量p和size,分别用来存储内存的地址和大小。

然后通过Mem_Alloc函数来申请了大小为1024字节的内存空间,并将返回的地址赋给变量p。

最后根据p的取值来判断内存申请是否成功,并弹出相应的提示框。

除了申请内存空间,易语言还提供了一些其他的内存管理函数,如Mem_Free用于释放已申请的内存空间、Mem_Copy用于复制内存数据等。

这些函数可以帮助程序员更加灵活地操作内存空间,提升程序的性能和效率。

在进行内存管理操作时,需要格外注意内存的使用情况,避免出现内存泄漏或者内存溢出的情况。

内存泄漏是指程序中申请的内存空间未能及时被释放,导致内存空间的浪费和程序性能下降;而内存溢出则是指程序在申请内存空间时超出了系统所能提供的最大范围,导致程序崩溃或者数据丢失。

为了避免出现以上问题,程序员可以在内存申请后及时释放内存空间,并且在使用内存空间时要确保不会超出其范围。

新手必学的易语言教程


冯·诺依曼设计思想最重要之处在于明确地提出了“程序存储”的 概 念 , 他的全部设计思想实际上是对“程序存储和程序控制”概念的具体化。 迄今为止,计算机的工作原理仍然采用存储程序和程序控制原理,计算机 一系列的工作是根据指令功能控制程序的执行来完成的。 2.计算机中数据的表示方法 由组成计算机硬件电路的特性决定,计算机中的数据由 0,1 两个二进制数 表示。现代计算机不仅处理数值领域的问题, 而且处理大量非数值领域的问题。 这样一来,必然要引入文字、字母以及某些专用符号,以便表示文字语言、逻 辑语言等信息。 那么,一个数字或者一个字符在计算机中具体是如何表示的呢? 目前国际上普遍采用的字符系统是 ASCII 码(美国国家信息交换标准字符 码)。ASCII 码规定 8 个二进制位的最高一位为 0,余下的 7 位可以给出 128 个编 码,表示 128 个不同的字符。 其中 95 个编码,对应着计算机终端能输入并且可以 显示的 95 个字符,打印机设备也能打印这 95 个字符,如大小写各 26 个英文字 母,0—9 这 10 个数字符,通用的运算符和标点符号+,-,*,/,>,=,< 等等。另 外的 33 个字符,其编码值为 0—31 和 127,则不对应任何一个可以显示或打印的 实际字符,它们被用作控制码,控制计算机某些外围设备的工作特性和某些计算 机软件的运行情况。 3.指令、程序和软件
指令是计算机要执行的一种基本操作命令,是对计算机进行程序控制的最 小单位。 程序是一组指令序列,并取以文件名,称为程序文件。计算机的工作原理 是先将需要执行的程序从外存中读入内存,由 CPU 负责逐条读取指令,然后再 执行,直到遇到结束指令。 软件是指计算机程序及其有关的文档,它可以分为系统软件和应用软件两 大类。 系统软件是负责管理、控制、维护、开发计算机的软硬件资源,提供用户 一个便利的操作界面和提供编制应用软件的资源环境。其中最主要的是操作系 统,其他还有语言处理程序、系统实用程序、各种工具软件等。 操作系统(OS)是对所有软硬件资源进行管理、高度及分配的核心软件, 用户操作计算机实际上是通过使用操作系统来进行的,它是所有软件的基础和 核心。 应用软件是为解决实际问题而专门编制的程序,如字处理软件(WORD) 、 辅助设计软件 (AutoCAD) 、 绘图计算软件 (几何画板) 、 计算机维护软件 (Norton)、 杀毒软件(KV3000)等。 应用软件与系统软件的关系如下图 1-2 所示:

易语言 记录集 查找语法-概念解析以及定义

易语言记录集查找语法-概述说明以及解释1.引言1.1 概述易语言是一种计算机编程语言,它特别适合初学者学习和使用。

它的设计理念简单易懂,语法简洁明了,让编程变得容易上手。

通过易语言,我们可以轻松地实现各种功能,如图形用户界面(GUI)、网络编程、文件操作等。

本篇长文将重点介绍易语言中的记录集查找语法。

在探索记录集查找语法之前,我们需要了解何为记录集。

记录集即是一种数据结构,它类似于表格或数据库中的记录。

通过记录集,我们可以方便地组织和管理数据。

在日常编程中,我们经常需要对记录集进行查找操作,以找到符合某些条件的记录。

易语言提供了丰富的记录集查找语法,可以满足不同的查找需求。

本文将详细介绍易语言中的记录集查找语法,包括按字段值查找、按条件查找等。

通过学习和掌握易语言记录集查找语法,我们可以更加高效地处理和管理数据。

它在各种应用场景中都具有广泛的应用,比如数据库查询、数据筛选等。

同时,掌握易语言记录集查找语法也是提升编程技能的一种途径。

总结来说,本文将以易语言记录集查找语法为主线,介绍易语言的基本概念和语法结构。

通过学习本文,读者将能够理解易语言的基本原理,掌握记录集查找的方法,为日后的编程实践打下坚实的基础。

1.2 文章结构:本文主要分为三个部分:引言、正文和结论。

各部分的内容安排如下:1. 引言:1.1 概述:对易语言记录集查找语法的背景和重要性进行简要介绍。

1.2 文章结构:说明本文的整体结构以及各部分内容的安排。

1.3 目的:阐明本文的目标和意义。

1.4 总结:对本文的主要内容和结论进行概括。

2. 正文:2.1 什么是易语言:对易语言的定义、特点和用途进行介绍。

2.2 什么是记录集:解释记录集的概念和作用,以及在易语言中的应用。

2.3 记录集查找语法:详细介绍易语言中的记录集查找语法,包括基本语法和常用操作。

3. 结论:3.1 总结易语言记录集查找语法:对本文所介绍的易语言记录集查找语法进行总结和归纳。

易语言(06):数据类型

数据:是指能够输入致计算机,并被计算机识别和加工处理的符号的集合。

数据按一定的标准分为不同的类型,易语言称其数据类型。

易语言的数据类型从数据结构区分,可分为基本数据类型、特殊数据类型。

1.基本数据类型基本数据类型有6种:数值型、逻辑型、日期时间型、文本型、字节集型、子程序指针型。

数值型又包括:字节型、短整数型、整数型、长整数型、小数型、双精度小数型。

各种类型的数据都在内存中占用一定的存储空间,字节是计算机数据处理的基本单位,一个字节由8个二进制位构成,即8个比特(1Byte=8bit)。

如:字节型取值范围:0——255,是二进制00000000——11111111转化为十进制的数据;整数型取值范围是:-2,147,483,648——2,147,483,647,是二进制-1E32——1E32-1(-1×1032——1×1032-1)转化为十进制的数据。

如果给数据类型赋值超出其取值范围,就会发生数据溢出,如:给字节型数据赋值266,就会出现错误。

数据类型所占字节数越多,容纳数据数量越大。

占用内存也越大。

因此,在选择数据类型时,既要避免空间浪费,又要防止数据溢出。

2.特殊数据易语言特殊数据类型是指基本数据类型之外的其它数据类型。

包括通用型数据类型、库定义数据类型、内部组件数据类型、自定义数据类型。

通用型数据类型:仅在系统内部使用,能够匹配所有的基本数据类型、库定义数据类型、自定义数据类型。

库定义数据类型:由易语言支持库提供,可直接使用,同基本数据类型一样。

内部组件数据类型:易语言的每一种内部组件,都可以作为一种数据类型使用。

自定义数据类型:用户可以随时在程序中自行定义新的数据类型,自定义数据类型时需要设置数据类型的名称及其成员,其中数据类型成员各属性设置方法与变量设置方法相同。

学习中文编程——易语言(六):数据类型工作夹程序面板中自定义数据3.数据类型的转换在编写程序时,有时需要对数据类型比较,相同数据类型之间可以直接比较,不同数据类型之间需要先转换再比较。

易语言 数组比较-定义说明解析

易语言数组比较-概述说明以及解释1.引言1.1 概述在编程语言中,数组是一种重要的数据结构,用于存储一系列相同类型的元素。

它提供了一种方便的方式来组织和访问数据。

在易语言中,数组也是一种常见的数据类型,具有各种基本操作和方法。

本文将探讨易语言中数组的比较,即如何比较两个数组是否相等或者大小关系如何。

数组比较在编程中非常常见,它可以帮助我们确定数组的相似性或不同之处,从而进行后续的操作和判断。

在本文中,我们将介绍易语言中数组的定义和基本操作,包括如何创建、访问和修改数组元素。

然后,我们将详细讨论两种不同的数组比较方法,以帮助读者更好地理解和掌握数组比较的技巧。

第一种比较方法是基于元素逐一比较的方式。

我们将逐一比较数组中的每个元素,判断它们是否相等。

这种方法简单直观,但对于大型数组效率较低。

第二种比较方法是基于数组的哈希值比较。

我们可以使用哈希函数将数组转换为唯一的哈希值,然后比较两个数组的哈希值是否相等。

这种方法可以提高比较效率,特别是对于大型数组。

通过学习和理解这两种比较方法,读者将能够更好地应用和掌握数组比较的技巧,在实际编程中能够更准确地比较和判断数组的相等性和大小关系。

最后,在结论部分,我们将对数组比较的重要性进行总结,并鼓励读者进一步学习和探索相关的知识。

数组比较是编程中一个重要的概念,掌握了数组比较的技巧将有助于读者提高编程能力和解决实际问题。

希望通过本文的阐述,读者能够更好地理解和掌握易语言中数组比较的方法和技巧,并能够灵活运用到实际的编程项目中。

让我们一起开始吧!1.2 文章结构本文主要分为引言、正文和结论三个部分。

下面将详细介绍各个部分的内容:1. 引言部分包括概述、文章结构、目的和总结四个小节。

在概述中,将简要介绍易语言和数组比较的背景和基本概念。

文章结构部分即为本节所述,将说明本文的整体结构和各个部分的内容。

目的部分将明确阐述本文的写作目标和意义。

最后,在总结部分将对全文进行概括和回顾。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第五章子程序的编写与调用子程序用来对一系列命令进行封装,实现模块化、重用即抽象,有利于抽象的结构化开发,使程序结构更清晰。

合理划分代码结构式软件成功的基本保障。

前面章节已经接触到了一些子程序,如“_按钮1_被单击”子程序。

通过对本章的学习,可以加深对子程序的认知,并能熟练的编写及调用子程序。

5.1 子程序的初步应用5.1.1 子程序的分类易语言中的子程序可以分为两大类:“事件子程序”和“用户自定义子程序”。

前面曾见过的“_按钮1_被单击”子程序,是在按钮被单击事件产生时程序需要执行的动作。

这种对应组建所发生事件的子程序,称作组建的“事件子程序”。

例如:按钮有被单击、被双击、左键被按下等事件,选中按钮后,在属性面板中的事件列表中选择这些事件,就可以生成对应的事件子程序,大家可以在这些事件子程序中写入具体执行的代码。

运行时,一旦这些事件产生,就会自动执行相应的子程序。

事件子程序的名称、返回值类型和参数个数都是系统定义的,不允许用户任意修改。

“用户自定义子程序”是由用户创建,其参数个数和返回值都有用户自行定义的子程序。

用户可以根据需要在程序设计时对其任意修改。

使用子程序的好处很多,譬如有段代码在程序中多处被重复调用,此时就可以将其编写到一个子程序中,不仅减少了代码输入的重复劳动,而且需要修改这段代码是,只要修改一个地方即可,而不用再程序中逐个修改,即实现重用;再譬如要实现一个相对复杂的功能,如果全部代码写在一起,发现错误就无法确认问题来源,此时可将问题分解为多个简单问题,使用子程序逐个实现,这样有利于提高代码的正确性和清晰度。

组建的事件子程序在书中各章均有提及,且格式相对固定,因此本章将重点介绍自定义子程序的定义与使用。

5.1.2 用户自定义子程序的创建子程序是存在于程序集中的,有程序集分组管理。

若一个新建的易程序还没有进行任何操作是没有程序集的,这是可以使用菜单:“插入”→“程序集”来新建一个程序集放置自己所写的用户自定义程序;或通过在窗体空白处双击鼠标,会自动创建窗口对应的窗口程序集,并自动生成“_启动窗口_创建完毕”子程序(创建完毕事件子程序可包含本窗口组件时被执行的程序代码);或双击按钮等组件,也会创建该窗口对应的窗口程序集及组件对应缺省事件子程序。

此时就可以在当前窗口程序集中添加新的子程序了。

如图5-1所示。

用户自定义子程序可以放在窗口程序集中,或自定义的程序集中,当然,本书建议您将当前窗口用到的用户自定义子程序放在当前窗口程序集中,这样就可以非常方便地引用程序集变量和窗口中的组件,而且查找起来页较为方便。

若程序集已建立,可通过程序面板切换到程序集中操作,或通过窗口菜单切换。

定义一个新的子程序可以通过在程序编辑界面按下“Ctrl+N”键;或在程序编辑界面点击鼠标右键,在弹出菜单中选择第一项“新子程序”;或者选择易语言菜单“插入”→“新子程序”来新建子程序。

如图5-2所示。

创建后的子程序可以根据需要修改其名称,建议在定义子程序名称是,尽量选择能体现功能的名称,如“求和”、“统计字符”等。

5.1.3 子程序的调用子程序的调用方法和命令的调用方法相同,输入子程序的名称就可以调用该子程序。

如果子程序要求提供参数,在括号中要按照子程序参数定义的数据类型和参数个数顺序填写参数;如果需要用变量保存子程序返回值,必须使用和子程序返回值相同的数据类型变量。

5.1.4 返回值和参数的定义使用“返回()”命令,可以将子程序处理后的结果返回给调用它的程序使用。

为子程序定义返回值,需要在子程序的“返回值类型”单元格中定义其返回值的数据类型,同时,在子程序任意一个结束分支中,都必须使用“返回()”命令将欲返回的值回传。

为子程序增加参数定义,首先在子程序名称上按回车键增加一个空白参数定义,修改该参数的名称和数据类型即可。

参数的“类型”如果为空,系统默认为整数型参数。

如果某项参数的“可空”类型未被设置,在调用该子程序时就必须为此参数提供初始值。

子程序的参数在当前子程序内可以当作变量引用。

例如:上述子程序定义中,子程序名为“相加运算”,返回值类型为“整数型”,子程序有2个整数型参数,分别为“加数1”和“加数2”。

该子程序可以对参数做相加运算,并将运算结果回传。

调用该子程序的方法如下:5.1.5 编写一个子程序下面用一个实例讲解如何编写子程序。

本例中该子程序用来统计在一段文本中某个字符出现的个数。

首先新建一个易程序,在窗口中添加2个编辑框组件和1个按钮组件,一个编辑框用来输入被查找的文本,可将其“允许多行”属性设为“真”便于查看;另一个用来输入欲查找的文本。

按钮组件的标题改为“开始查找”。

如图5-3所示。

进入窗口对应的程序集,新建一个子程序,将子程序返回值设置为整数型,并定义2个文本型参数,分别为“被寻找文本”,和“欲寻找文本”,然后再子程序中输入如下代码:“查找文本个数”自定义程序中使用了“寻找文本()”命令,该命令会返回指定文本在另一文本中,从指定位置开始最先出现的位置,如果没有找到返回-1。

程序循环寻找指定文本,指导失败自动跳出循环。

循环结束后,使用返回命令,将统计的文本个数回传。

在“_按钮1_被单击”事件子程序中用信息框显示查找的结果,代码如下:试运行程序,在编辑框1中输入一段文本,然后在编辑框2中输入与查找的文本,按下按钮,信息框显示查找到的文本个数。

如图5-4所示。

本例程参看随书光盘中“寻找文本个数.e”。

5.1.6 子程序指针易语言中部分命令必须以子程序在内存中的起始地址作为参数,如“启动线程()”命令;使用某些外部API函数时,也同样需要知道调用的子程序在内存中的起始地址。

在易语言中,以子程序指针型变量记录子程序在内存中的起始地址。

赋值方法为“&”+子程序名。

如:变量1=&子程序1启动线程(变量1)赋值之后,“变量1”(类型为“子程序指针型”)存储的就是“子程序1”的可执行代码首地址。

5.2 子程序的参数属性子程序每个参数都存在“参看”、“可空”和“数组”三个属性。

这三个属性决定了子程序参数的几种特性。

本节将介绍它们的作用和用法。

5.2.1 参数的“参考”属性子程序参数的“参考”属性用于设置系统当前子程序参数传递数据时是否为传递指向数据的指针。

如果所传递过来的参数数据为数组、用户定义数据类型、库定义数据类型、文本型、字节集型数据,则无论此属性是否为“真”(选中),都将传递指针。

如果所传递过来数据的类型与相应位置处参数的数据类型不一致但可以相互转换。

譬如将“整数型”数据传递到“小数型”的参数中,则在数据被实际传递钱,系统将首先自动将“整数型”数据转换为“小数型”数据,然后再进行传递。

因此在这种情况下,及时本属性为“真”,系统也无法传递指向原数据的指针,只能传递数据本身。

如果系统将数据指针成功地传递过来,那么在子程序中对此参数内容的更改将会相应地反映到调用子程序时所提供的参数数据上。

给子程序参数定义“参考”属性,只要将属性相应位置打上“√”即可。

下面通过一个例程来观察“参考”属性的作用。

新建一个易程序,然会在“_启动窗口”中添加一个画板组件和一个按钮组件。

双击按钮组件,在代码编辑界面新建一个子程序,定义子程序名为“测试”,为该子程序定义2个参数,均为整数型;参数名分别设为“参考参数”和“非参考参数”,将参考参数”的“参考”属性上打上“√”:在“_按钮1_被单击”子程序中输入代码:运行程序,观察运行结果。

如图5-5所示。

上述程序中,每次点击按钮,就会调用“测试”子程序对2参数进行修改。

从画板的显示结果可以看出,对应“参考参数”的变量1,因子程序内部对相应参数的操作而被修改,而对应“费参考参数”的变量2没有发生任何变化。

本例程参考随书光盘中的例程“参数的参考属性.e”。

5.2.2 参数的“可空”属性易语言自带的支持库命令中有一些参数可以被省略,一般查找帮助时可以看到可省略的部分用中括号括起来了。

如“时间到文本()”命令的第二个参数是可以省略的,它也可有一个默认的数据,此命令帮助如下:用户自定义子程序也可以实现这样的功能。

在设计子程序的时候,有些参数可能经常用到相同的数据。

如果每次调用该子程序,均需手工指定此数据作为参数初始值,那是一件非常繁琐的事情。

在这种情况下,可以将此数据作为该参数的默认值,内置在子程序中,并将参数属性设置为“可空”类型。

当子程序被调用时,该参数没有指定具体的初始值,就为该参数赋予默认值参与运算。

如果某项参数的“可空”类型未被设置,在调用该子程序时就必须为此参数提供数据。

定义“可空”属性的方法和定义“参考”属性相同,将该属性打上“√”即可。

如果需要检测当前子程序被调用时,该参数是否传递了数据,可用“是否为空()”命令进行确认。

下面编写一个可以进行加法或减法运算的子程序,来了解“可空”属性的实际应用。

本例程将加减运算的功能制作成一个子程序,通过第三个参数确定是作加法计算还是减法计算,如果第三个参数为空进行加法运算,不为空则进行减法运算。

第一步,新建一个易程序,在窗口中添加3个编辑框组件,2个按钮组件和1个标签组件,将按钮组件的标题分别改为“加法运算”和“减法运算”,标签组件的标题改为“=”。

如图5-6所示。

第二歩,切换到代码编辑界面,新建一个子程序,将子程序改名为“加减运算”。

给该子程序定义3个整数型参数,参数名分别为“被运算数”、“运算数”和“进行的运算”,将“进行的运算”参数的“可空”属性被设置,在子程序中输入如下程序代码:子程序中,“进行的运算”参数控制子程序进行何种运算,该参数为空进行加法运算,该参数不为空则进行减法运算。

第三歩,回到“_启动窗口”双击“减法运算”按钮,然后在“_按钮1_被单击”和“_按钮2_被单击”子程序中分别输入代码:可以看到,在“_按钮1_被单击”子程序中个,省略了“加减运算”子程序第3个参数的填写。

最后,运行程序,查看运行后的效果。

如图5-7所示。

程序运行时点击左边按钮,程序运行的“加减运算”子程序第三个参数没有填参数,因此进行的是加法计算。

点击右边按钮,程序运行的“加减运算”子程序第三个参数设置参数为1,因此进行的是减法计算。

本例程可以参考随书光盘中的例程“加减运算.e”。

5.2.3 参数的“数组”属性子程序参数也可以接受数组,如系统的“播放MP3(,)”命令的第二个参数就可以接受数组。

而用户自定义了“数组”属性后,就可以给这个参数中填写一个数组变量。

子程序的参数如果是“数组”型变量,就自动具有了“参考”属性。

定义参数的“数组”属性,在该参数的数组属性上打“√”。

下面就编写一个例程,来了解数组参数的作用。

第一步,新建一个易程序,在窗口中添加一个画板和一个按钮组件。

第二步,双击按钮组件,在程序设计界面新增一个子程序,然后将子程序名改为“测试数组属性”,给该子程序定义一个参数,将参数的名称改为“数组”,并将参数的数组属性选中:第三步,在按钮1 被单击的子程序中输入代码:最后试运行程序,查看运行效果,如图5-8所示。

相关文档
最新文档