易语言linux版可不可以做一个远程管理linux数据库

彻底解决mysql中文乱码的办法
MySQL会出现中文乱码的原因不外乎下列几点:1.server本身设定问题,例如还停留在latin12.table的语系设定问题(包含character与collation)3.客户端程式(例如php)的连线语系设定问题强烈建议使用utf8!!!!utf8可以兼容世界上所有字符!!!!Linux下Mysql插入中文显示乱码解决方案mysql -uroot -p 回车输入密码进入mysql查看状态如下:mysql不能插入中文默认的是客户端和服务器都用了latin1,所以会乱码。解决方案:mysql&mysql&alter database mydb &character set utf8;!另一种方法是直接修改默认的Mysql配置文件在debian环境下,彻底解决mysql无法插入中文和中文乱码的办法上面提到了用临时方法更改数据库的字符集设置,显示中文,但是后来发现在有的系统下并不能成功,比如我用的debian 7.0,找了好久终于找到一个适合debian系统的解决方案,debian 7.0下测试成功,其他诸如修改client和mysql加入default-character-set=utf8的方法之类的,只适用与5.5以前的系统!终极决绝方案,一劳永逸:debian下mysql的字符串修改为utf8(参考:rainysia的专栏)一、进入mysql(mysql -uroot -p),查看当前数据库字符集()二、查看当前系统版本(lsb_release -a)Mysql不能插入中文三、#vim /etc/mysql/my.cnf 。(5.5以前系统)在【client】下面加入&default-character-set=utf8在【mysqld】下面加入default-character-set=utf8Notice:注意 如果修改后不能启动报错试试把default-character-set=utf8改为character_set_server=utf8,仅仅加入到mysqld下面的.client就不需要加了四、#vim /etc/mysql/my.cnf 。(5.5以后系统)如下修改:[client]default-character-set=utf8[mysqld]default-storage-engine=INNODBcharacter-set-server=utf8collation-server=utf8_general_ci五、重启mysql(/etc/init.d/mysql stop & /etc/init.d/mysql &start)六、修成成功,进入mysql查看字符集(mysql&show variables like ‘character_set_%’;)Mysql无法插入中文一、避免创建数据库及表出现中文乱码和查看编码方法1、创建数据库的时候:CREATE DATABASE `test`CHARACTER SET 'utf8'COLLATE 'utf8_general_ci';2、建表的时候 CREATE TABLE `database_user` (`ID` varchar(40) NOT NULL default '',`UserID` varchar(40) NOT NULL default '',) ENGINE=InnoDB DEFAULT CHARSET=utf8;这3个设置好了,基本就不会出问题了,即建库和建表时都使用相同的编码格式。但是如果你已经建了库和表可以通过以下方式进行查询。1.查看默认的编码格式:mysql& show variables like &%char%&;+--------------------------+---------------+| Variable_name | Value |+--------------------------+---------------+| character_set_client | gbk || character_set_connection | gbk || character_set_database | utf8 || character_set_filesystem | binary || character_set_results | gbk || character_set_server | utf8 || character_set_system | utf8 |+--------------------------+-------------+注:以前2个来确定,可以使用set names utf8,set names gbk设置默认的编码格式;执行SET NAMES utf8的效果等同于同时设定如下:SET character_set_client='utf8';SET character_set_connection='utf8';SET character_set_results='utf8';2.查看test数据库的编码格式:mysql& show +------------+------------------------------------------------------------------------------------------------+| Database | Create Database |+------------+------------------------------------------------------------------------------------------------+| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET gbk */ |+------------+------------------------------------------------------------------------------------------------+3.查看yjdb数据库的编码格式:mysql& sh| yjdb | CREATE TABLE `yjdb` (`sn` int(5) NOT NULL AUTO_INCREMENT,`type` varchar(10) NOT NULL,`brc` varchar(6) NOT NULL,`teller` int(6) NOT NULL,`telname` varchar(10) NOT NULL,`date` int(10) NOT NULL,`count` int(6) NOT NULL,`back` int(10) NOT NULL,PRIMARY KEY (`sn`),UNIQUE KEY `sn` (`sn`),UNIQUE KEY `sn_2` (`sn`)) ENGINE=MyISAM AUTO_INCREMENT=1826 DEFAULT CHARSET=gbk ROW_FORMAT=DYNAMIC |二、避免导入数据有中文乱码的问题1:将数据编码格式保存为utf-8设置默认编码为utf8:set names utf8;设置数据库db_name默认为utf8:ALTER DATABASE `db_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_设置表tb_name默认编码为utf8:ALTER TABLE `tb_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_导入:LOAD DATA LOCAL INFILE 'C:\\utf8.txt' INTO TABLE2:将数据编码格式保存为ansi(即GBK或GB2312)设置默认编码为gbk:设置数据库db_name默认编码为gbk:ALTER DATABASE `db_name` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_设置表tb_name默认编码为gbk:ALTER TABLE `tb_name` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_导入:LOAD DATA LOCAL INFILE 'C:\\gbk.txt' INTO TABLE注:1.UTF8不要导入gbk,gbk不要导入UTF8;2.dos下不支持UTF8的显示;三、解决网页中乱码的问题将网站编码设为 utf-8,这样可以兼容世界上所有字符。  如果网站已经运作了好久,已有很多旧数据,不能再更改简体中文的设定,那么建议将页面的编码设为 GBK, GBK与GB2312的区别就在于:GBK能比GB2312显示更多的字符,要显示简体码的繁体字,就只能用GBK。1.编辑/etc/my.cnf ,在[mysql]段加入default_character_set=utf8;2.在编写Connection URL时,加上?useUnicode=true&characterEncoding=utf-8参;3.在网页代码中加上一个&set names utf8&或者&set names gbk&的指令,告诉MySQL连线内容都要使用utf8或者
阅读本文后您有什么感想? 已有
人给出评价!
04-10-0804-10-0704-10-0704-10-0704-10-0704-10-0704-10-0704-10-07
注:您的评论需要经过审核才会显示出来
没有查询到任何记录。
Copyright &
PC6下载(www.pc6.com).All Rights Reserved
备案编号:湘ICP备号拒绝访问 | www.easyfang.com | 百度云加速
请打开cookies.
此网站 (www.easyfang.com) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(3e5c943f216f43fb-ua98).
重新安装浏览器,或使用别的浏览器赞助商链接
当前位置: >>
易语言学习
1945 年底, 在美国首次研制成功人类第一台计算机, 这台机器重 30 吨, 占地面积达 167 平方米,加之它的工作原理,因此,人类后来的计算机并不是在这台机器的基础上发展起来 的。 现代计算机理论的奠基人是图灵。在美国数学家冯.诺伊曼的主持下,1949 年诞生了 第一台存储程序的计算机,又称第一代机,这台计算机为后来的计算机发展奠定了基础。 1959 年,第一台晶体管计算机问世,由此,计算机进入了第二代。1964 年,IBM 第一代 360 系列计算机问世,这是第一代通用计算机,为研制这种计算机,IBM 投资 50 亿美元,比二 战期间美国政府投入到原子弹研究的钱(20 亿美元)还要多;由此,计算机进入了第三代。 进入到 80 年代以后,中大型计算机问世,于是开始了第四代计算机的时代。70 年代以 后,出现了计算速度更快、存储量更大的巨型机。 70 年代微处理器的问世,标志着计算机的发展开始了又一场革命。1977 年 3 月苹果公 司的个人用计算机问世,自此,计算机开始进入千家万户。1.1.2 电子计算机的基本结构计算机由硬件和软件组成。而硬件是由主机和外部设备组成;软件由系统软件和应用 软件组成。 计算机硬件是软件的基础,是软件发挥功能的工作环境,而软件则是管理和利用硬件 资源来实现计算机的功能,软件和硬件是相互促进和发展的。 硬件大体上有以下几个部分:控制器,运算器,内存储器(RAM、ROM) ,输入设备 和输出设备。前三者又合称主机,后两者又称作外部设备。现在就这五个部分的功能,作一 些简要说明。 1.输入设备。输入设备是用来向主机输入原始数据和处理这些数据所使用的计算程序 列的设备。输入设备的种类很多,但在微型机上不外乎下列几种: (1)终端键盘。利用手指击键方法向计算机输入信息。用户自己写的程序列化和准备 处理的数据,都可由键盘上敲入。 (2)磁盘。磁盘,实际上也是存储信息的,因为它们都是主机之外的设备,所以也称 为外存储器。外存储器上的信息,也可以输入到机器中去。 (3)模―数(A/D)转换器。它可以将连续变化的模拟量(如电压、电流、长度、角度等) 转换为数字量,送入到机器中去。 此外,图形输入板、声音输入装置等,实际上是专用的模数转换器,同样可以为计算 机输入信息。 2.输出设备。输出设备是用来输出计算结果或其它信息的。常用的输出设备有: (1)显示终端。用以显示计算机的有关信息,占用户从键盘上敲入并为机器接收的字 符、机器清单、机器向用户的提示,程序运行时的输绐(包括数字、文字或图形)等。 (2)打印机。显示终端上可显示的东西几乎都可以由打印机打印到纸上。 (3)磁盘。可以用来存储程序和数据(包括数字、文字、图形和声音信息等) 。 3.主存储器,即内存储器(简称内存)。它用来存放原始数据、处理这些数据的程序以 及计算结果(包括中间结果,也包括图形和声音信息等)。系统程序也存放在内存中。 内存储器分为一个个单元,好似一间间房子,并按顺序编了号码(从 0 号开始),通常又 称为一个个地址。机器中的所有信息都以一定的规则存放在内存的一个个单元中。 对任何一个单元来说,它很象从左到右顺序安放的一排灯泡,每个灯泡代表一位数字:1 灯泡点亮代表 1,灯泡熄灭代表 0。于是这一排灯泡就可表示由 0 和 1 构成的一个数这排灯 泡的个数,就称为位数或字长。目前,一般微型计算机的内存储器是用半导体器件组成的电 路制成的,称为半导体存储器。字长,一般取决于微处理器的字长。 一般微型机的内存储器又分为两个部分。 一部分是随机存储器(RAM), 每个单元的数据 是可以改变的,而且关电以后所有信息都会自动消失。这类存储器是用户可以使用的空间。 另外,还有一部分是只读存储器(ROM),每个单元一信息是固化的,用户只可读出使用,但 无法使其改变。任何时候,只要接通电源,这些信息就建立好了。 4.运算器。运算器是计算机进行信息加工的场所,所有算术运算逻辑运算等都在这里 进行。就象用算盘算题时一样,它只能放当前被操作完的一个数据,中间结果一般配要送内 存中保存起来,以备以后使用。所以,没有内存,单靠运算器是无所作为的。 5.控制器。它是用来实现计算机各部分协调动作使计算过程自动进行的装置。也就是 说,它是计算机内的指挥部。 控制器可以向计算机的其它部件发出信号,控制数据的传输与加工;同时,控制器也 接收其它部件送来的信号,以便调整其控制功能。 所以,在计算机工作时,有两和种信息流:控制流与数据测定流,由控制流控制数据 的传输与加工,完成所有的计算动作。 这里介绍的运算器、控制器、内存储器、输入输出设备等,都是一些看得见、摸得着 的“硬”东西,所以又称它们为“硬件”或“硬设备” 。相对地,那些在计算机工作过程中 必不可少的数据以及对这些数据进行处理的控制命令等信息流都是摸不着的“软”东西,通 常称之为“软件”或“软设备” 。 易语言本身,属于软件的范畴。1.2 计算机中数的表示日常生活中,我们非常习惯使用十进制计数法,可是在日常生活里我们也还会遇到一 些另的进制,如二进制(两只为一从)、十二进制(十二英寸为一英尺,十二个月为一年)、十 六进制(中国老秤十六两为一斤)、二十四进制(二十四小时为一天)和六十进制(六十分为一 小时,六十秒为一分等)等等。在计算机内部,则用二进制计数法。 为什么计算机要使用二进制计数法呢?这是因为电气元件中两种状态最容易实现(如电 路的通断、电位的高低等),也最为稳定,并且最容易实现对电路本身的控制。 在计算机里,一般以高电位代表 1,低电位代表 0。二进制的两个数基,就用 0 和 1 来 表示。凡够 2 时,就向左进一位。比如十进制的 2,用 10 表示;十进制的 4,用 100 表示等。 用逻辑电路实现二进制数的运算,是极为方便的。 用不同进位制表示的数之间,可以根据一定的规则相互转换。 1.2.1 十六进制数、二进制数、八进制数 在计算机内部运算中常用的进位制有 4 种: 二进制:逢 2 进 1,由数字 0 和 1 组成,以下标 2 或后缀 B 表示。 八进制:逢 8 进 1,由数字 0 至 7 组成,以下标 8 或后缀 Q 表示。 十进制:逢 10 进 1,由数字 0 至 8 组成,以下标 10 后缀 D 表示,该后缀可以省略。 十六进制:逢 16 进 1,由数字 0 至 8 和字母 A 至 F 组成,以下标 16 或后缀 H 表示。 例如:二进制数 1001010 表示为 1001010(B) 、八进制数 234512 表示为 234512(Q) 、 十六进制数 4523ADF 表示为 4523ADF(H) ,十进制数的后缀可以省略。 用不同进位制表示的数之间,可以根据一定的规则相互转换。2 1.十六进制数、八进制数与二进制数之间的转换 一位十六进制数用四位二进制数表示,一位八进制数用 3 位二进制数表示。 二进制数转换为十六进制数时,以小数点位置为界,向两侧每四位分组,当两侧不足四 位时补 0。例如:101(B)=01 0100(B)=2A.54(H) 二进制数转换为八进制数时,以小数点位置为界,向两侧每三位分组,当两侧不足三位 时补 0。例如:101(B)=101,010.010,101(B)=52.25(Q) 十六进制数转换为二进制数时, 以小数点为界, 每一位十六进制数转换为四位二进制数 向两侧排列;八进制数转换为二进制数时,以小数点为界,每一位八进制数转换为三位二进 制数向两侧排列。 1.2.2 十进制数和二进制数之间的转换 把一个十进制数转换为二进制数,方法如下:把这个十进制数反复地除以 2,直到商为 零,所得的余数(从末一位读起)就是这个数的二进制表示。 如十进制的 11,反复用 2 除:用二进制表示,是 1011。 换句话说,把一个十进制数化成以 2 为底的指数形式,则它的系数(由高次到低次)就 是其二进制表示的数。 像上面提到的十进制数 11,换成以 2 为底的指数形式为: 11=1×23+0×22+1×21+1×20 把它的系数顺序排列起来,就是 1011,这就是它的二进制表示。 反之,一个二进制数它的十进制表示,就可以用 1×23+0×22+1×21+1×20 =11 换言之,将一个二进制数转换成十进制数的方法是:将这个二进制数的最末一位乘以 20,倒数第 2 位乘以 21,……最后将各项相加即可。 1.2.3 十进制数与十六进制数的转换 在计算机内,所有的数都是用二进制表示的(电位的高低表示 1 或 0) 。然而,如果让 人们对任何二进制数能象对十进制数那样一目了然, 实在不是一件容易的事。 这一方面由于 人们用二进制数终归没有用十进制数来得那么普遍与习惯; 另一方面, 用二进制表示一个数 时,其位数较长(比如大于十进制 63 的数,用二进制表示至少要 6 位) ,且每位数只有 0 和 1 可资区别。 为此,人们引进了八进制和十六进制的表示方法。 必须指出, 八进制或十六进制并不是机器中的某一位有八种状态或十六种状态, 在机器 内仍是以二进制为藉款础的(每一位只可有两种状态) ,只是为着输入或输出一个二进制数 的方便,击机器内的二进钥数从右向左每三位分作一组,每组便可表示 0-7 的某个数,显然3 最右一组满 8 时要向左邻一组进 1,于是这三位一组构成了八进制数。类似地,把二进制数 从右到左每四位分作一组,每组表示 0-15 中的某个数,这一组一组就构成了十六进则数。 目前用十六进制表示较为普遍。 可以想见, 把两个四位连在一起可以用两个十六进制数表示, 其数值范围可为十进制数的 0 到 255,共 256 个数,选用它们来代表所有英文字符的内部编 码 (以便用二进制数代表字符)是足够使用了。因此又把两个十六进制数作为一个基本单 位,称作“字节” 。 十六进制数的表示法,0-9 仍沿用十进制中的 0-9,接下去的六个数依次用 A、B、C、 D、E、F 表示。 因此,十进制的 0-16 表示成二进制数和十六进制数。如下表所示。 十进制表示 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 二进制表示 0 1 10 11 100 101 110 111 10 01 000 十六进制表示 0 1 2 3 4 5 6 7 8 9 A B C D E F 10十进制数和十六进制数之间的转换,类似于十进制数和二进制数之间的转换。 把一个十进制数反复地除以 16, 直到商为 0, 将所有余数 (从末一个起) 顺序排列起来, 就是这个数的十六进制表示。 如,十进制的 269转换为十六进制数为 10D,反之,把一个十六进制数的末位乘以 160,倒数第二位乘以 16 …再将各项累加,所得的数就是那个十六进制数的十进制表示。 如: 10D=1×162+0×161+13×160=26914 关于八进制数及其与十进制数之间的转换,不再叙述,请读者自己考虑。1.3 计算机语言人们进行思维活动或人与人之间交流思想, 要通过语言, 计算机进行或人与计算机交流 信息,也需要通过语言。这就是计算机语言。计算机语言是用来指明让计算机依次做些什么 事情的,所以又称为程序设计语言,这种语言有其自身的特点和发展过程。1.3.1 机器语言前文提到,计算机的指挥中心是控制器,且计算机中的数都是用二进制数表示的。实际 上,控制器也是用二进制数的 0 或 1(即低电平、高电平)来实现其控制功能的。 原来,任何一种电子计算机,都是一套指令系统,由若干条指令组成,每条指令都可指 挥计算机实现某些功能。 一条指令,通常由操作码和操作数两部分构成。操作码由若干位二进制数组成,由于这 若干位 0 和 1(即低电位、高电位)的不同组合,因而能使计算机产生不同的。操作数部分 也是由若干位二进制数构成,它指明被操作的对象。一般地,它可以是被操作数的本身,也 可是被操作数在内存中存放的地址, 甚至不指明操作数部分(有时是隐含的)。 如果操作数部 分指明的是地址,不同类型的机器待,又可能只指明一个地址(被操作数地址)、或指明两个 地址(两个操作数的地址,或一个被操作数地址,一个操作结果存放地址) ,或指明三个地 址(被操作的两个数的地址和操作结果存放地址)等等, 它们分别被称为一地址、 二地址或三 地址指令。 控制器每遇到一个操作码,就会产生不同高低电位的组合,控制机器作相应的动作。地 W部分的不同高低电位组合,又会指向相应的被操作对象。从而完成一条指令的功能。一条 条指令执行完结,运算就告结束。 由于指令的操作码会直接使机器产生相应动作, 操作数部分会直接指向被操作对象, 所 以用一条条指令写成的机器语言程序,能为机器直接认识。换之,机器语言是计算机能懂得 的唯一语言。 用机器语言写的程序,在机器上运行时,速度是最快的。 值得说明的是,上述例子中,由七个连续单元中;十六进制数的 20 号单元中也得事先 送入一个数;还有,结果存放的地W也是用户指定的。这就是说,内存中什么地方放程序, 什么地方放被操作的数,什么地方放结果,得由用户自行分配。短小的程序比较好办,长而 复杂的程序,分配内存时得格外小心,以防止搞乱了。 显然,用机器语言编制计算程序,对用户来说有着很大的缺陷: 1.难写、难读、难修改; 2.由于每种机器的指令系统不一样,这种程序没有通用性; 3.需要人工分配内存。1.3.2 汇编语言为着克服机器语言固有的缺陷,人们经过研究探讨,引进了一种汇编语言。 汇编语言实际抚是一种符号语言, 它把人们难以记忆和辨认的操作码改用有意义的英文 单词(或见长缩写)作为助记符来代替,而对操作数部分稍加改动,更易于理解。5 然而,从机器语言到汇编语言是花了一定代价的。因为计算机只认识机器语言,为了让 计算机能认识汇编语言,最简单的办法是在机器内部编制一个对照表,像一本字典一样,对 任何汇编符号都能从这个对照表中查到相应的机器语言的指令操作码。进行这种对照查找, 当然也得有一个用机器语言写的(以便机器能认识的)程序,即汇编程序。机器在执行这个 汇编程序时会把一条条汇编语言翻译成机器语言,从而又为机器所能认识。 可见,执行汇编程序得额外花费机器运行时间,汇编程序和对照表也要占用内存空间。 因而由机器语言改用汇编语言,是以降低机器运行速度和减小用户可用内存空间为代价的。 汇编语言可以克服机器语言的第一个缺陷,但其而缺陷却依然存在。1.3.3 算法语言算法语言又称“高级语言” ,它比较完满地解决了机器语言的所有缺陷,是程序设计语 言的一大突破。 高级语言编写出的程序,称为源程序,而更是计算机不能直接认识的东西。让计算机认 识并能执行高级语言源程序,需要一个翻译和执行的过程,它比汇编程序功能要强得多。 我们通常用高级语言写好一个程序,让机器运行它,这种说法并不十分确切。拿易语言 写的程序来说, 真正运行的并不是易语言的源程序, 而是由易语言编译器将源程序编译后的 机器码,从而完成了源程序所要做的一切。然而它还是顺着易语言程序一句句执行的。不同 程序语句有不同方法和效果,所以我们以后还是说成运行(或执行)易语言源程序。 不言而喻, 高级语言的优点是以降低运行速度和减小用户可用内存空间为代价的。 运行 速度大约只及机器语言的数百分之一。 随着大规模集成电路技术的飞速发展, 指令技术周期 越来越短,存储器越来越便宜,这些代价也就显得不那么重要了。当然,对某些程序来说, 降低运行速度可能是致命性的, 所以近年来不少应用程序用高级语言与机器语言相结合的 办法,不是没有道理的。 以上提到的汇编程序、解释程序、编译程序以及操作系统、服务性程序、库程序等,一 般称为系统程序; 为解决特定问题而编写的程序, 一般称为应用。 这些都是属于软件的范畴。1.4 习题1.将下列二进制数转换成十进制数: (1)101 (2)1100 (3) (4) 2.将下列十进制数转换成二进制数: (1)26 (2)54 (3)129 (4)25560 3.把下列十进制数转换为十六进制数: (1)15 (2)287 (3)6438 (4)39684 4.把下列十六进制数转换成十进制数: (1)B (2)1C (3)A93 (4)FFFF 5.把下列二进制数转换为十六进制数: (1) (2) (3) (4)010 6.把下列十六进制数转换为二进制数: (1)8F (2)3A4 (3)6D35 (4)FFFF第二课.易语言的基本概念6 本节将向读者介绍什么是易语言, 构成易语言程序有那些最基本的东西。 正象盖房子一 样,这里仅仅是准备钢筋,水泥,砖,瓦,沙,石等材料。同时在本章中我们还要介绍一些 易语言常用的命令和常规的上机操作方法。2.1 易语言的特点1.全可视化 一般的可视化编程语言, 仅支持图形用户界面的可视化设计操作, 而易语言除了支持此 类可视化操作,还支持程序流程的即时可视化呈视,极大地减少了程序录入错误。即:用户 在编写程序的过程中,可以即时看到当前程序的运行流程及路线,有助于培养编程思路,提 高解决编程问题的能力。 2.全中文 作为一款由中国人自己开发的编程语言, 易语言在中文处理方面有良好的支持。 用户在 编写程序的过程中, 可以不接触任何英文。 根本不懂英文的人使用中文编写代码也没有任何 障碍。 (1)中文名称的快速录入。易语言内置四种名称输入法:首拼、全拼、双拼、英文。 三种拼音输入法均全面支持南方音。使用这些输入法能够极大地提高中文代码的输入速度。 直接使用系统提供的输入法,如五笔字型、智能 ABC、紫光拼音、自然码等,同样可以 进行程序的输入。 (2) 程序全部以中文方式显示, 运算符号全部显示为对应的中文符号 (≥≤≠≈×÷) , 日期时间以中文格式呈现(年月日时分秒) ,以便于中文用户理解、阅读程序。 (3)适合中国人的语言、思维习惯。对其它计算机编程语言的学习,总会感到某种限 制,首先是语言环境的限制,有很多专业的术语字面上很难理解它的含义,而以中文编写出 的程序代码, 符合中国人的语法习惯和逻辑思维, 可以做到见文思义, 更加适合中国人使用。 在以后复查程序时可以非常直观地分析; 给其他人源代码学习时也会非常简单, 相互交流变 得更加容易。 易语言更提供了中文格式日期时间处理、汉字发音处理、全半角字符处理、人民币金额 处理等功能支持。 3.全编译与跨平台 易语言拥有自己独立的高质量编译器,中文源代码被直接编译为目的机器的 CPU 指令, 高效且不存在任何速度瓶颈和安全隐患。 易语言现已同时支持 Windows 和 Linux 程序开发,不再依赖特定的操作系统。 4.可扩充支持库 易语言由基本系统和运行支持库两部分组成, 两者之间通过使用易语言自行定义的接口 技术进行协作。运行支持库内提供了易语言的所有语言要素,如:命令、窗口和报表单元数 据类型、普通数据类型、常量等等。可以通过安装外部支持库来扩充易语言基本系统。运行 支持库还可以被随意增减、抽换或升级,基本系统对运行支持库提供了详细的版本控制。本 技术给用户带来的最大好处是: (1)用户可以根据行业或自身需要定制易语言; (2)由于运行支持库的不断增多、升级,易语言的功能将被迅速扩充; (3)由于运行支持库可以仅包含声明而不包含实际的运行支持代码,并且可以随时被 更新或抽换, 这样可使人们通过国际互连网与服务器进行远程易语言交流 (例如复杂型电子 商务、远程控制等等)成为可能,这也是以后易语言互联网版本的发展方向。 5.数据库支持 易语言相对其它编程语言的优势还在于易语言拥有自己的易数据库, 并且用中文命令操7 作易数据库,简单方便。同时,易语言对外部数据库也有着非常好的支持,通过简单的组件 和命令就可以实现易语言与各类数据库的连接,如 Oracle、MySQL、SQL Server、Access 等等。 6.OCX 组件、类型库(TypeLib) 、API 与 COM 对象 易语言可直接在程序中引用多种现有编程资源, 极大的扩充了易语言的功能, 并可对这 些英文资源进行汉化处理, 从而能够保持全中文的特点, 让用户不用学习英文也能充分使用 这些英文资源。 7.与其它编程语言相互融合、互相补充 易语言支持当今先进的编程理念,例如面向对象编程、事件消息处理机制等,了解、学 习和掌握易语言对掌握其它编程语言具有桥梁作用, 同时, 易语言可以和其它编程语言以标 准 Win32 DLL 方式互相调用,保障了多种编程语言协同开发的需要。 8.即时编译并自动规范语句格式的录入方式 在输入程序过程中,每条程序语句录入后,当光标离开该行,则对该行立即进行初步分 析编译。如果该行输入正确,则该行的拼音简写会变成对应的汉字变量名或组件名,并呈现 统一的字体间距和格式, 因此任何人所编写的任何程序其格式都完全一致, 这对于应用程序 的协作开发、交流和维护非常有利。 9.系统内置的自动名称管理器能够对用户所定义的各类名称进行跟踪管理 例如:假设程序中现存在一个名为“刷新内容”的子程序,而且在很多地方都调用了该 子程序。现在用户根据需要想把该子程序更改为另外一个名称,在传统的编程语言中,用户 更改子程序名称后,要搜寻整个应用程序,逐一找到使用了该子程序的地方,把名称相应地 改变过来。在易语言中,用户只需更改该子程序名称,程序中其它所有使用了该子程序的地 方,其名称都将被自动更改过来。 10.贯穿全程的即时且全面的信息帮助 用户在进行任何操作的过程中,随时按 F1 帮助键,均能够在状态行上或提示夹中获得 有关当前操作位置的详细相关信息。例如:用户将光标移动到某程序行上,然后按下 F1 键, 马上就能够得到此程序行上所有命令的定义、参数、使用方法、所录属的支持库等信息。2.2 易语言程序的构成下面对易程序的结构进行介绍。 首先你的易程序需要有一个显示界面, 一般是使用一个 窗口(也可以是控制台程序)作为启动画面,易语言中指定“_启动窗口”这个窗口是首先 弹出的窗口,大家可以在这个窗口中放上其它的组件,以显示信息或美化程序界面。窗口显 示时会有一系列的触发事件,如“创建完毕”事件、 “尺寸被改变”事件等,但可能大家没 有用到这些事件, 因此不会进行任何的动作, 只是显示一个窗口。 若大家使用到了这些事件, 就会形成事件子程序,这样就产生了子程序,而子程序是放在程序集中进行组织的,而每一 个窗口对应一个程序集,大家也可以自己创建自己的程序集,程序集包含若干个子程序,子 程序内输入程序代码。而程序代码就是各种命令和方法。 为配合命令书写,需要有存放内容的变量,为方便引用,可以建立常量,自定义数据类 型,甚至可以建立图片或声音资源供引用。为了调用系统应用程序接口 API,使用更多的功 能,需要进行 DLL 声明。这些操作可以在“程序面板”中完成。 为了重复利用程序资源,不必每次都重新写某段代码,除提供自定义子程序外,还提供 易模块,供其它程序调用,也可以写标准动态链接库,供易语言及其他语言调用。 为了理解上述的程序结构,下面跟着本书写第一个易程序。8 先从一个简单的例子说起。 假定某甲有人民币 15 元,某乙有人民币 20.5 元,求甲乙二人共有人民币多少元? 把这个问题写成易语言“Windows 控制台程序” ,可以是下面的样子:计算机在执行这个程序时,先让“甲”取得值 15,再让“乙”取得值 20.5,然后让“和” 取得“甲”与“乙”之和,即 35.5;再把“和”的值显示出来。 例程中,几个数字,如 15、20.5,几个中文,如甲、乙、和。这些数字和中文,分别 叫做常量和变量。2.3 易语言界面、菜单介绍以及上机操作2.2.1 易语言的界面初次运行易语言后,首先会弹出对话框,询问创建何种类型的易程序。如下图所示。 若打开易语言界面后未新建程序,也可以通过菜单“程序”→“新建”来创建新的易程 序。或点击窗口工具条中的新建按钮来新建易程序。9 易语言启动对话框易语言可创建以下 6 种程序: 1.Windows 窗口程序 窗口程序:是支持在 Windows 下弹出窗口及组件等标准 WIN32 位程序, 也称易程序。 2.Windows 控制台程序 控制台程序:是 WIN32 位无窗口界面的易程序。一般用于服务器等。 3.Windows 动态链接库 动态链接库:可以生成 DLL 程序,将在本书关于 DLL 章节中介绍。 4.Windows 易语言模块 易语言模块 模块:简称易模块,是经过初步编译后的程序模块,供其他程序重 复调用,将在本书关于模块章节中介绍。 5. Linux 控制台程序 是支持 Linux 操作系统的无窗口命令行程序, 控制台程序: 将在本书关于 Linux 程序章节中介绍。 6.Linux 易语言模块 易语言模块:是支持 Linux 操作系统且经过初步编译后的程序模块。 选择“Windows 窗口程序” ,点击“确定”按钮,就会创建一个相应的标准的 Windows 窗口程序,并可以看到易语言的主界面。 易语言主界面的最上方是标题栏, 显示易语言系统当前打开的程序名称, 当前所支持的 操作系统,以及当前设计窗口名称。标题栏下方是菜单栏,有易语言的常用菜单。菜单栏下 方是快捷命令按钮工具条,一些常用的操作都可以通过点击这些工具条中的按钮实现。 主界面的左边是易语言的工作夹, 其中有 3 个面板, 分别是 支持库面板 、 程序面板 “支持库面板 “程序面板 支持库面板” 程序面板” 和“属性面板 。 属性面板” 属性面板 “支持库面板 支持库面板”的作用是:显示支持库列表,展开查看各支持库提供的命令、数据类型 支持库面板 等信息。在程序编辑状态下,可以通过双击此面板中的某个命令,将其直接填充到光标处。 若有窗口组件的方法也可以在这个列表中查看方法的用处。 将光标移至某支持库根部, 按下 F1 后可查看此支持库的介绍信息。 “程序面板 的作用是:相当于一个组织机构, 程序面板” 可以添加窗口, 或加载全局变量、常量、 程序面板 资源、DLL 命令申明、自定义数据类型等。也可用来在程序各操作界面间进行切换,例如10 可以直接找到某个创建的窗口中,或快速找到某个子程序, “属性面板 属性面板”的作用是:属性表可查看和更改已添加组件的属性、组件列表列出所有组 属性面板 件并可快速选择所需组件,事件列表可生成此组件的事件子程序。 最右边是易语言的组件箱,里面列出了易语言提供的所有组件。分为四栏, “基本组件” 栏可显示易语言最基本常用的组件, 即核心支持库内的组件, 在本书基本组件章节中进行介 绍。 “扩展组件”包含扩展支持库内的组件,在本书的后面有一些介绍。 “外部组件”包含 COM 包装支持库所封装的 ActiveX 组件, 此组件也称 OCX 组件。外部事件组件” “ 包含 COM 包装支持库所封装的 COM 事件组件。 主界面中间是设计区,在窗口设计时可自由向窗口中添加组件,进行程序界面设计;在 程序代码编辑状态下可录入、 修改程序代码。 切换这两个工作状态可通过 “窗口” 菜单或 “程 序面板”等实现。 最下方是易语言的状态夹,可以查看帮助信息,查看调试文本等等。 易语言系统界面如下图所示。易语言主界面2.2.2 菜单项目详解下面以易语言默认创建的“Windows 窗口程序”介绍各菜单项目的功能。 首先说明的是,菜单栏中各项目名称以及子项目菜单名称前面带有下划线的字母是此 项菜单的快捷键。只要项目上的文字未变灰,就可使用此项菜单的功能。其使用方法是:点11 击键盘上的 Alt 键,易语言系统菜单栏中的第一个项“程序”被选中;点击菜单栏中任意一 项名称前面的字母对应的键盘上的按键, 此项菜单被弹出; 最后点击子项目名称前面的字母, 即可实现菜单功能。 而子项目菜单名称后面的提示是此项功能的快捷方式,比起快捷键来说,使用更方便 快捷。如:Ctrl + C 键 的功能是将所选内容复制到系统粘贴板中,方法就是同时按下键盘上 的两个键或先按下 Ctrl 键然后再按下 C 键,而不需要弹出菜单。 在实际操作中,快捷键和组合键的使用会大大提高菜单功能的实现速度,减少鼠标的 重复动作。 1.程序 此菜单的功能是对程序文件项目的操作。(1)新建:建立新程序。 弹出标题为“新建: ”的对话框,选择创建不同类型的程序。前面已经介绍过,这里就 不多讲了。 (2)打开:打开一个现有程序。 弹出标题为“请选择易程序文件: ”的打开文件对话框,选择后缀为“*.e”的程序文件。 (3)关闭:关闭当前程序。 关闭后“易语言”的程序设计窗口将被置空。 (4)保存:保存当前程序。 新建程序没有保存过,将弹出“保存为: ”对话框,提示编辑者选择程序的保存位置和 程序的名称,以后此程序将默认这个保存位置,不会再弹出提示。 (5)另存为:将当前程序以一个新文件名保存。 将弹出“另存为: ”对话框,提示编辑者选择程序的新的保存位置或输入程序的新的名 称进行保存,同时将位置指向新保存的程序。 (6)打印:打印当前编辑窗口中的源程序。 使用打印机打印当前窗口中的源代码。 (7)配置:配置本程序的环境及作者信息。 弹出“程序配置对话框”设置程序信息。该对话框可以将程序名称、程序备注、作者信 息等信息保存在生成后的 EXE 文件中, 当查看此 EXE 文件的属性时, 这些信息会显示出来。 并且可以在这里为自己的程序设置图标。 (8)最近打开的程序,可用鼠标左键单击打开被选择程序,同时原有程序被关闭。 (9)退出:退出系统;提示保存文档。 被更改过或末被保存过的程序,将弹出信息框提示编辑者保存程序,然后退出系统。12 2.编辑 此菜单中的项目可完成程序代码的即时编辑功能,多在代码设计区被选中时有效。(1)撤消:撤消最后一步操作。 一步一步撤消自创建或打开程序后对程序的修改。 (2)重复:重新执行先前已撤消的操作。 一步一步还原自程序被创建或打开后的撤消的操作。 (3)复制:复制被选块并将其置于粘贴板上。 复制被选中代码或窗体、窗体组件到粘贴板,其原有内容不会改变。 (4)剪切:剪切被选块并将其置于粘贴板上。 相当于将被选中代码或窗体、窗体组件移动到粘贴板中,其原有内容被删除。 (5)粘贴:插入粘贴板内容。 将粘贴板的内容插到程序中。其内容是程序代码,需要在代码设计区中进行插入;内容 是窗体组件,需要选中窗体才能插入;如果是窗体,只需激活易语言系统,便可以将窗体插 入到程序中。 (6)删除行:删除当前所选择的块或光标当前所在的行。 (7)开始寻找:开始在程序中寻找指定文本。 弹出“寻找对话框” ,请求输入被寻找的文本。其寻找范围为当前程序集。 (8)寻找下一个:在程序中寻找下一个指定文本。 以光标或已寻找到的文本为界,向代码下方寻找。其寻找范围为当前程序集。 (9)寻找上一个:在程序中寻找上一个指定文本。 以光标或已寻找到的文本为界,向代码上方寻找。其寻找范围为当前程序集。 (10)寻找替换:在程序中寻找替换指定的文本。 弹出“寻找替换对话框” ,提示输入被替换和替换成的文本。以光标或已寻找到的文本 为界,向下寻找或替换文本,也可以将当前程序集中所有找到的指定文本进行替换。 (11)整体搜寻:在程序中寻找指定文本并列出所有找到的项目。13 在全局中寻找指定文本, 包括常量数据表、 数据类型表等所有在代码设计区中以文本形 式存在的指定项目。 注:以上 5 项功能遇到收缩的子程序时将跳过,不进入其内部寻找,忽略其中包括的指 定文本。 (12)收缩:将当前子程序或块内的所有语句收缩显示。 (13)展开子程序:将当前选中块内的所有被收缩子程序展开显示。 (14)屏蔽:屏蔽当前所选中的代码块。 把所选代码行或代码段设置为草稿,在调试和运行程序时不被执行。 (15)解除屏蔽:解除屏蔽当前所选中的代码块。 把草稿行或被屏蔽的代码设置为可执行代码。 (16)导入其它程序:将其它易程序中的内容全部导入到本程序中。 打开标题为“请选择易程序文件”对话框,选择程序文件插入到当前程序中。被导入程 序的“_启动窗口”以及其它与当前程序重复的程序集名称、窗口名称后面将按顺序被加入 数字加以区别。 (17)置为只读状态:设置为只读状态后将不允许所有修改操作的发生。(18) (19)添加一个新的流程控制命令,并将被选择代码块放到此命令中。要使菜单 功能有效,选择代码块的方法是:选择两行或两行以上的单行代码;选择一个或多个分支流 程控制命令,必须把流程线外的一行选中,如下图。其它选中方法无法实现。(20) (21)把选中的流程控制命令转换为别的流程控制命令,它们之间可以互相转换。 但要注意的是,在转换过程中,原来的程序流向有可能发生改变。 3.查看 显示各功能工具和程序相关资源定义表。14 (1)查看自定义数据类型表 (2)查看全局变量表 (3)查看 Dll 命令定义表 (4)查看常量数据表 以上四项菜单的功能相同, 都是将所选窗口放置到设计区的顶层。 它们与工作夹中程序 面板中的各项相互对应。 (5)预览现行窗口,按 Esc 键退出预览 程序不能在此窗口中进行调试。(6)在易语言界面上显示和隐藏各功能工具。(7)与工作夹中程序面板中的相对项目功能相同。 4.插入 将所选项目自动插入到对应的设计区中,由编辑者按系统给定的格式填写代码。(1)根据现行编辑窗口的性质插入一个新子程序/数据类型/全局变量/Dll 命令/常量/资15 源到当前位置。 (2)插入一个新类模块。 (3)插入一个新程序集。 (4)插入一个新的子程序到当前位置的后面。 (5)插入一个新窗口。 (6)插入一个新的自定义数据类型到数据类型表。 (7)插入一个新的全局变量到全局变量表。 (8)插入一个新的 Dll 命令到 Dll 命令表。 (9)插入一个新的常量到常量数据表。 (10)插入一个新参数到程序中当前命令或子程序调用的参数表。 (11)插入一个新局部变量到子程序局部变量表。 (12)在当前编辑光标位置处插入所选择文件的全路径名称。(13)向资源表中添加数据资源,如:文本文件、声音图片文件以及其它类型文件。 5.数据库 使用易语言系统提供的数据库工具,创建、编辑、转换、设置数据库相关内容。(1)浏览或修改指定数据库的结构。本功能由 dbmanger.e 编译后的程序提供,用户可 以根据需要进行修改。 (2)浏览或修改指定数据库的记录。本功能由 dbmanger.e 编译后的程序提供,用户可 以根据需要进行修改。 (3)将数据库中数据所使用的语言转换到另外一种。 (4)可以将其它类型的数据库通过 ODBC 转换为易数据库。 (5)设置指定数据库的访问密码。 (6)将指定数据库的名称及所有字段名作为文本常量加入到系统常量表,以便在程序 中使用。 6.运行 程序调试工具菜单。提供多种功能,用来查看、跟踪、挂起程序。具体使用方法请参见 第七课。16 (1)编译现行易程序的调试版本.EXE 文件后立即运行。 (2)终止现行易程序的运行。 (3)查看/修改指定表达式或变量的内容。 (4)在程序现行运行位置单步执行一行程序,如果此程序调用了子程序,系统不会跟 踪到该子程序中去。 (5)在程序现行运行位置单步执行一行程序,如果此程序行调用了子程序,则跟踪进 入子程序。 (6)在上级子程序调用现行子程序的语句后中断。 (7)运行易程序,在当前光标所处程序行处中断。 (8)设置或清除当前程序行处的断点。 (9)设置或修改当前程序行处的条件断点。 (10)清除掉程序中的所有断点。 (11)跳到现行即将被执行语句的位置。 7.编译 对已注册用户,提供三种不同的方法,将源代码创建成可执行的 EXE 程序文件。(1)编译现行易程序的最终发布版本,创建对应的.EXE 可执行程序文件。 (2)编译出可执行 EXE 文件,该文件不依赖任何易语言系统文件,可以在未安装易语 言系统的电脑上运行。 (3)制作当前易语言程序的安装软件,该软件不依赖任何易语言系统文件,可以在未 安装易语言系统的电脑上运行并安装指定易语言程序。 8.工具 易语言系统提供的多种附加工具,可用来管理和配置易语言的扩展功能。17 (1)调用菜单编辑器编辑修改当前窗口的菜单。 (2)编辑报表模板文件。 (3)管理系统中的易模块。 (4)执行指定的易向导文件。 (5)安装新的支持库或制作支持库安装包。 (6)本工具可以封装指定的 COM 类型库或 OCX 组件,使其能够在易语言中被使用。 (7)配置当前在系统中使用的支持库。 (8)设置与系统相关的配置信息。 可以打开易语言的系统配置对话框, 通过调整该对话框中各项属性的参数, 可以自定义 界面各部位颜色,可以选择各种配色方案,还可以对内置输入法等很多方面进行配置。 9.窗口 设置已被载入设计窗口的排列方式以及已被载入设计窗口的名称、隶属和类型。(1)排列窗口成相互重叠。 (2)排列窗口成互不重叠。 (3)将图标排列在窗口底部。 (4)将活动的窗口分隔成窗格。 (5)已被激活的设计窗口。 (6)已被载入的设计窗口。 10.帮助 易语言帮助和易语言系统信息。18 (1)在状态夹中显示有关当前位置的帮助信息。 (2)打开并显示易语言知识库。 需要安装知识库文件,方可使用。 (3)显示每日一贴。 (4)提供有关易语言支持库的帮助信息。 (5) (7)显示程序和程序注册信息。 (6)2.2.3 上机操作1.在设计窗口中添加组件 从组件组件箱中选出所需的组件添加在设计窗口中, 只需要用鼠标左键在组件箱中点击 欲添加的组件,使其处于选中状态,然后在设计窗口中左键单击或按住鼠标左键拖动,拉出 一个组件即可。 添加后的组件可以通过拖动鼠标改变其位置和大小, 也可以使用方向键来微 调组件的位置,还可以按住[Shift 键+方向键]来微调组件的大小。 2.命令参数的输入 易语言提供的参数引导输入功能,减少了记忆量,更节省了编程的时间,极大降低了程 序录入的错误。对于参数较多的命令,程序员不需要再花时间去查询参数的意义,可以直接 将命令展开输入,方法:将光标停在欲展开的命令行上,如果当前行没有通过编译,则不能 展开命令,可以使用[Shift+Enter]键来编译当前行,然后按下[ALT+右方向键],该命令就会 被展开,各参数都列在了该命令的下面,可以直接在命令下的参数分支上输入。 3.即时帮助信息 易语言编程环境在用户进行任何操作的同时, 会将有关的支持信息在提示面板中显示出 来,若不能即可提示,可以使用以下介绍的方法:随时按下“F1 键”使用可随时得到与主 题相关的帮助信息。 即时帮助信息可显示系统中各运行支持库内的命令、 库定义数据类型、 库定义常量等等 信息。 直接在工作夹内的支持库面板中找到并单击欲查找信息的项目, 此时所有的相关信息 将会显示在状态夹的提示面板中。 如果欲将这些信息提取出来打印或者以后阅读,可以在相应项目上单击鼠标右键, 在弹 出菜单中选择“拷贝帮助文本到剪贴板”或者“写帮助文本到文件”, 输出与该项目及该项 目所有子项目相关的帮助信息,供电脑中浏览或打印出来阅读。 4.备注和屏蔽的方法 备注是一行或一段代码的提示和说明。 编写代码时要养成一个良好的习惯, 就是给部分 代码输入备注信息,这样一来,既方便了自己日后阅读,又方便其他人更快的理解程序代码 的思路和功能。输入方法:在备注文字前加“’”号,则该符号后的本行文字变为备注,在 输入代码时,可以在代码的旁边或代码的下方输入备注。19 在任何情况下,如果想屏蔽一行代码,则在该行代码前加“’”号,和置为备注的方法 相同,屏蔽后的代码在运行调试时不会被编译,调试程序寻找错误时,该方法会起到很大作 用。将代码前的“’”号删除便可以解除屏蔽。还可以在代码上点击鼠标右键,弹出的菜单 中也有“屏蔽”和“解除屏蔽”选项。也可使用[Ctrl+K 键]进行屏蔽,选中多行代码,然后 使用[Ctrl+K 键]来屏蔽多行代码,然后可以使用[Ctrl+M 键]来解除屏蔽。 以上四种操作只是编写代码时的基本操作方法, 其他细节上的使用, 将在以后的相关地 方加以详解。2.4 变量在程序运行中可以改变的量,称为变量。 变量实际上是常量的名字,只不过在程序运行的不同时刻可能代表不同的常量罢了。 一个变量名好象旅馆的一个房间标记,今天可以住张三,明天可以住李四。 任何一个变量参与运算时,总是取它所代表的具体数据(即常量)来进行,可以代表 一个具体的数据(即常量) ,或代表一组数据。 变量的声明方法:①将光标移到某个子程序中(包括子程序被声明的表格中或子程序中的空白处) ,使用 “Ctrl+L 键”生成下面的空白表格; ②生成的空白表格; ③按“回车键”添加新的空白行; ④输入变量的名称,除“_”外不能有任何符号和标点; ⑤输入变量的数据类型,也可以按“空格键”弹出数据类型表从中选择; ⑥可按“空格键”选中/取消,如被选中,子程序第二次被调时变量值就不会自动还原 到初始值; ⑦用来定义变量的数组维数和成员数(如:2,3) ,可以使变量保存一组数据,其默认 (为空)只能保存一个具体的数据; ⑧注解变量的作用和在程序中相关信息。 一旦它被声明之后,就可以使用赋值运算符“=” ,给它分配值(数据) 。2.4.1 变量的作用范围20 从变量的使用范围来区分, 可以将变量分为 “局部变量” 、 “程序集变量” “全局变量” 和 。 局部变量,只能在其所在的子程序中才能被调用的变量,其他子程序都无法调用。因为 局部变量 子程序被调用的时候,这种变量才占用系统的内存,当子程序执行结束后,变量所占空间被 系统收回,因此局部变量是非常节省系统内存的。 程序集变量,一般情况下仅在本程序集中被调用。 程序集变量 程序集变量所在的程序集中的所有子程序, 都可以自由访问程序集变量, 多个子程序都 需要访问的数据,可以使用程序集变量来存储。属于静态变量。 全局变量,在程序运行后,所有程序集内子程序都可以使用的变量。也是覆盖范围最大 全局变量 的变量。这种变量在程序运行后即占用内存空间,在程序运行结束才从内存中清除,所以会 长时间占用系统资源,建议根据程序的实际情况适当使用。 在选择使用变量的类型时, 尽量选择符合该变量使用范围的变量类型, 以节省系统内存。2.4.2 变量的赋值赋值语句是使变量取得数据的常用方法之一。 给变量赋值的时候要注意变量的数据类型,符合各数据类型的赋值规则即可。 变量的赋值还有几个需要注意的地方,例如: 1.给数值型数据赋值时,数据会自动转换类型 任意数值类型的数据可以被写入到其它任意数值类型的变量中,系统将自动进行转换。 例如将一个短整数写入到整数型变量中, 将一个整数写入到小数型变量中等等, 但是此时必 须注意防止上一章中所提到的溢出问题。 若将小数型变量写入到整数型变量时, 会丢失小数 点后的内容,请大家千万注意使用,最好转换类型是一一对应。 2.使用“连续赋值() ”命令给多个变量同时赋值 “连续赋值() ”命令有 2 个参数,第一个参数是用做赋予的值和资源,第二个参数是 被赋值的变量或变量数组, 第二个参数可以重复添加, 即可以添加多个被赋值的变量, 例如: 连续赋值 (100, 变量 1, 变量 2, 变量 3, 变量 4) 命令运行后,将会给变量 1、变量 2、变量 3 和变量 4 同时赋值 100。这一行代码相当 于以下四行代码: 变量 1 = 100 变量 2 = 100 变量 3 = 100 变量 4 = 100 以上代码是最基本也是最典型的赋值语句。其格式为: 变量名 = 表达式 功能是:把“=”号右端的表达式的值赋予“=”号左端的变量。或者说,让“=”号左 端的变量取“=”号右端表达式的值。 “=”号,称为赋值符号,不同于数学上的等于号。 3.赋值程序例 在数学上, 变量 1=变量 1 + 1 是矛盾的方程,不存在这样的“变量 1” 。 而在易语言中,这类语句是屡见不鲜的。它执行的结果是在旧“变量 1”取值的基础上 让“变量 1”取得一个新值。也就是改变“变量 1”所代表的数值。上面那个语句执行的结21 果就是让“变量 1”增大 1。 如果使用 变量 1+ 变量 2=100+100 或 变量 1+ 变量 2= 变量 3+ 变量 4) 都是错误的。 因为赋值语句的格式中, 要求赋值符号的左端必须为一个变量名。 而这里的 “变 量 1+变量 2”不是变量名(它不符合变量名的构成规则) 。 例 1.某学生 5 门功课的考试成绩分别为 75,82,90,63,84。求该生的考试总分和 . 平均分。 “Windows 控制台程序”代码如下:按“F5 键”运行程序,分别将对应的分数输入,程序便将计算结果输出显示。2.4.3 变量的初始值变量的初始值即一种变量在程序运行时, 没有赋予新值前的初始数据。 每一种数据类型 的变量初始值都有所不同。像文本型变量的初始值是一个空文本,表示为“” ,数值型变量 的初始值是 0 等等。下表所示。变量的初始值22 变量类型 数值型 逻辑型 日期时间型 文本型 字节集型变量初始值 0 假 1899 年 12 月 30 日 空文本 空字节集初始值在代码中的表示方法 0 假 [1899 年 12 月 30 日] “” {}大家可以制作一个简单的例程,来查看各种变量的初始值。新建一个“Windows 控制台 程序” ,在“_启动子程序”新建 10 个局部变量,并分别将变量名改为“字节变量”“短整 、 数变量”“整数变量”“长整数变量”“小数变量”“双精度小数变量”“逻辑变量”“日 、 、 、 、 、 、 期时间变量”“文本变量”“字节集变量” 、 、 ,然后根据变量名定义相应的数据类型,并输入 代码: 标准输出 (, 字节变量, #换行符, 短整数变量, #换行符, 整数变量, #换行符, 长整 数变量, #换行符, 小数变量, #换行符, 双精度小数变量, #换行符, 逻辑变量, #换行符, 日期时间变量, #换行符, 文本变量, #换行符, 到文本 (字节集变量)) 标准输入 () 按“F5 键”试运行程序,控制台窗口将 10 个变量的值分行显示出来,由于没有对这些 变量进行赋值,所以画板显示的是这些变量的初始值。 如一个变量未被赋值时,将取零值或空文本。 “Windows 控制台程序”代码如下:按“F5 键”运行程序,其中“数值型”的输出为“1”“文本型”的输出值是“文本” ; 。 数值型 = 数值型 + 1 文本型 = 文本型 + “文本” 以上两行代码在计算时相当于 数值型 = 0 + 1 文本型 = “” + “文本”2.4.4 静态局部变量“静态”属性是局部变量的重要属性。具有“静态”属性的局部变量称为“静态局部变 量” 。静态局部变量在子程序运行完毕后仍保留其内容;而非静态变量,即普通局部变量,23 在每次进入子程序时都被重新初始化。 静态变量大致相当于“局部变量”和“全局变量”的结合:它具有局部变量的作用域, 同时具有全局变量的生命周期。 静态变量的定义和取消定义的方法很简单, 在欲定义的局部变量的静态属性上点击鼠标 左键,当静态属性上出现“√”后,即表示定义了一个静态变量,当再次点击将“√”去掉, 即表示取消定义。也可以在静态属性上按空格键,也可以定义和取消变量的静态属性。 下面编写一个简单的程序,来测试变量的静态属性。 新建一个“Windows 控制台程序” ,并在“_启动子程序”中新建 2 个局部变量。一个变 量名定义为“静态变量” ;另一个变量名定义为“非静态变量” 。都为整数型变量。将“静态 变量”设置为静态属性。 输入代码:按“F5 键”试运行程序,输入一个数,然后按“回车键” 。 会显示 2 行内容,其中第二行的数字是不变的,显示的是非静态变量中的数据;而第一 行的数字每次都递增,显示的是静态变量中的数据。 分析代码可以发现:非静态变量的值每次后,都会恢复它的初始值,所以代码: 非静态变量 = 非静态变量 + 输入值 其实等于代码: 非静态变量 = 0 + 输入值 静态变量会保存上次的值,所以总是递增的。2.5 易语言的数据类型在讲述变量之后和讲述常量之前,有必要介绍易语言中不同的数据类型。 数据类型包括:数值型、逻辑型、日期时间型等。24 2.5.1 了解数据类型易语言中基本数据类型有6种, 包括数值型、逻辑型、日期时间型、文本型、 字节集型、 子程序指针型。 字节型。可容纳 0 到 255 之间的数值。 字节型 数值型中整数型 整数型数据,如:13556。 整数型 逻辑型数据,只能有2种值,即“真”或“假” 。 逻辑型 日期时间型数据,用来记录日期及时间,如: [] 。 日期时间型 文本型数据,可用来记录一段文本,如: “中文编程易语言” 。在程序中表示一段文本数 文本型 据,都要用双引号将文本引起来。 字节集型数据,用作记录一段字节型数据,表示为{}。图片或 mp3 格式的文 字节集 件是典型的字节集型数据,在程序中,存放此类数据的变量一定要定义为字节集型。 子程序指针型数据,是一个子程序在内存中的地址。 子程序指针型2.5.2 给变量正确赋值定义了变量的数据类型后, 要给变量赋值就应注意赋值的类型要和变量类型相同。 例如: 文本变量=“中文编程易语言” ‘ 给文本变量赋值 整数变量=32342 字节集变量=#图片 例如: 变量=&子程序 1 ‘ 给整数变量赋值 ‘ 给日期时间型的变量赋值 ‘ 给字节集变量赋值,图片 1 图片资源表中的资源 日期时间变量=[1982 年 1 月 1 日]这里要注意,给“子程序指针”类型的变量赋值,表示为“&”+要指向的子程序名。2.5.3 数据的比较在编程中, 经常会在各种数据间进行比较。 同种数据类型之间进行比较, 可以直接进行; 而不同种数据之间进行比较, 就要先进行数据类型的转换, 将不同种的数据类型转换为同一 种数据类型后才能进行比较,否则程序会报错。 例如:编辑框中输入了一个整数,要比较编辑框中的内容是否大于 50。由于编辑框中 的内容是一个文本,首先要将编辑框中的内容转换成整数型数据后,再进行比较,输入以下 代码: 到数值(编辑框1.内容)>50 比较后,会返回一个逻辑值,如果大于 50 就会返回真,小于或等于 50 将返回假。 易语言中常用的数据类型间转换的命令有: “到数值() ”命令,用来将一个通用型数据转换到整数型。 “到文本() ”命令,用来将一个通用型数据转换到文本型。 “到字节集() ”命令,用来将一个通用型数据转换到字节集型。 “从字节集转换() ”命令,用来将一个字节集型的数据转换成通用型数据,命令的第 2 个参数控制欲转换成的数据类型。 “到时间() ”命令,用来将一个文本型的数据转换成日期时间型。25 使用这些数据类型间互相转换的命令,就可以进行不同数据类型间的比较了。 例如:比较 2 个编辑框中数的大小,用信息框显示出比较的结果,并用第 3 个编辑框显 示出较大数减较小数的结果。 在窗口中添加 3 个编辑框组件和一个按钮组件, 双击按钮组件, 然后输入代码:变量之间的比较也是一样, 一定要注意变量的数据类型, 不同数据类型的变量一定要转 换成相同类型后再进行比较。2.5.4 数据类型的存储字节与溢出1.数据类型的存储字节 . 各种数值型的数据都在内存中占用一定的存储空间。字节(byte)是系统中的基本存储单 位。数据类型所占字节数越多,所能够容纳数值的范围就越大。参见表 2-1。表 2-1 数据类型名称 字节型 短整数型 整数型 长整数型 占用字节数 1 2 4 8 0 到 255 -32,768 到 32,767 -2,147,483,648 到 2,147,483,647 -9,223,372,036,854,775,808 9,223,372,036,854,775,807 小数型 双精度小数型 逻辑型 日期时间型 子程序指针 4 8 2 8 4 -3.4E38 到 3.4E38 (7 位小数) -1.7E308 到 1.7E308 (15 位小数) “真”或“假” , 100 年 1 月 1 日到 9999 年 12 月 31 日 尺寸为 4 个字节。具有此数据类型的变量可以用来间接调 用子程序。 文本型 字节集 由以字节 0 结束的一系列字符组成 一段字节型数据 到 常用数据类型 取值范围从上表可以看出,数值型数据容纳的数值范围越大,占用的字节就越多。比如,短整数 型的数值 3000 和整数型的数值 3000,都代表了数值 3000,但在系统中占用的空间却不同, 即短整数型占 2 个字节,整数型占 4 个字节。所以,在实际应用时就要根据自己的需要来选26 择使用的数据类型,避免存储空间的浪费。例如,存储的数据在-32768 至 32767 以内,就 要采用短整数型; 如果使用小数而对精度不高, 就可以使用小数型而不用采用双精度小数型 等等。 2.数据的溢出 . 某数据类型存储的值超出了其所能容纳的范围,就会发生数据溢出错误。比如,让短整 数型数据存放大于 32767 的数值,将会得到错误的结果。所以在选择数据类型时,除了要避 免空间的浪费,又要防止数据的溢出。 可以做一个简单例程来测试一下数据的溢出,新建一个“Windows 控制台程序” ,然后 在“_启动子程序”中首先按下 Ctrl+L 键,新建一个变量,并定义变量名为“整数变量” , 变量类型为整数型,然后输入代码:最后按“F5 键”试运行程序,输入一个很大的数(比如:) ,然后按“回 车键” ,如果超出整数型变量容纳范围而产生溢出,会显示出错误的结果。2.5.5 自定义数据类型除了使用易语言提供的数据类型以外, 还可以根据需要自定义新的数据类型。 例如要定 义一个数据类型“矩形” ,定义方法如下: 第一步,新建一个“Windows 窗口程序” ,双击程序面板中的“自定义数据类型” 。 第二步,在自定义数据类型界面按下 Ctrl+N 键,新建一个数据类型。然后将数据类型 名定义为“矩形” ,由于决定一个矩形的位置取决于矩形左上点的横纵坐标和矩形右下点的 横纵坐标。 所以, “成员名” 在 上按 4 次回车, 加入 4 个成员。 4 个成员名分别定义为 将 “左 上横坐标”“左上纵坐标”“右下横坐标”“右下纵坐标” 、 、 、 。 最后,就要来使用这个自定义的数据类型了。画板有一个方法是“画矩形(),下面就 ” 用自定义的数据类型“矩形”来为画矩形方法填写参数。在窗口中添加一个画板组件和一个 按钮组件,双击按钮组件, 在“_按钮 1_被单击”子程序中新建一个变量,变量名为 “矩形” , 然后定义变量的数据类型为“矩形” ,然后输入代码:27 代码输入后试运行程序,点击按钮,画板会以画板的边框大小画一个矩形。2.6 常量常量,其值在使用过程中不会发生变化的变量,称为常量。比如数字 15,不管程序如 何变化,它永远是数字 15。 核心支持库中已经定义了大量常量, 其它支持库通常也会定义一些常量, 用户也可以在 程序中定义自己的常量。 各种图片或声音等资源都被看作常量, 要想在程序中随时调用, 可以将其存放在资源表 中, 这样在编程时不但可以随时调用, 而且资源表中的资源会和程序一起编译到可执行文件 里面。2.6.1 了解常量常量是一个固定的量,其值不可以被改变。易语言中规定了一些常量,这些常量都有固 定的值,例如易语言中的“#蓝色”代表了数值 、 “#F 键”代表了数值 70,所以在 程序中使用“#蓝色”其实是调用了“”这个颜色值。 核心支持库定义了许多常量,这些常量可以直接用#常量名即可调用,有数值型常量, 如颜色值:#蓝色、#绿色;有文本型的常量,如:# 引号等等。扩展支持库也有许多常量的 定义,并且新增加的支持库中,有的也会增加新的常量。2.6.2 ASCII 码ASCII 码是各种计算机通用的一种常量。 例如字符 a 的 ASCII 码是 97、 字符 b 的 ASCII 码是 98 等等,参见下表所示。可以使用易语言中的“字符() ”和“取代码() ”命令,在 ASCII 码和字符之间进行转换。例如: 信息框 (取代码 (“a”, 1), 0, ) 信息框会显示“a”的 ASCII 码。常用 ASCII 码表ASC 值 032 033对应字符 (space) !ASC 值 056 057对应 字符 8 9ASC 值 080 081对应 字符 P QASC 值 104 105对应 字符 h i28 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055& # $ % & ' ( ) * + , . / 0 1 2 3 4 5 6 7058 059 060 061 062 063 064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079: ; & = & ? @ A B C D E F G H I J K L M N O082 083 084 085 086 087 088 089 090 091 092 093 094 095 096 097 098 099 100 101 102 103R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127j k L M N O P Q R S T U V W X Y Z { | } ~ □2.6.3 常量的使用下面就介绍常量的使用方法: (1)颜色值常量的使用 有颜色属性的组件,在颜色属性上都有一个颜色选择器,用来直接改变颜色,颜色选择 器上可直接选择颜色的颜色值都作为常量提供,在调用的时候直接输入“#颜色名”即可, 如: 标签 1.背景颜色=#天蓝 (2) “#换行符”的使用 一段文本尾部加入了一个“#换行符” ,接在换行符后面的文本将另起一行,相当于在记 事本中输入的回车键。 如果想让编辑框显示一段文本并自动换行, 就需要使用换行符, “# 将 换行符”加到欲换行文本的前面即可,如: 编辑框 1.是否允许多行 = 真 编辑框 1.内容=“易语言”+#换行符+“编程可视化” (3) “#引号”“#左引号”“#右引号” 、 、 为了不和代码中表示文本数据的引号相冲突,程序中将文本的引号作为了一个文本常 量,如果要让编辑框显示出一个引号,就要使用“#引号”常量,要显示中国标点中的引号, 就要使用常量“#左引号”“#右引号” 、 。例如:让编辑框显示出: “我爱易语言,我爱编程!, ” 需要输入以下代码: 编辑框 1.内容=#左引号+“我爱易语言,我爱编程!”+#右引号29 (4)键代码的使用 易语言中, 将标准的 101 键盘上所有键的键代码都作为了核心支持库定义的常量, 在程 序中使用只需要输入“#”+键名,如键盘上的 F11 的键代码,在易语言中用常量表示为: #F11 键。例如,在向编辑框中输入内容的时候,想简单的屏蔽掉某个键,就可以在编辑框 的“按下某键”事件子程序中输入代码。 (5)用常量填写参数 很多命令参数填入的都是常量,如: “时间到文本”命令,此命令将指定时间转换为文 本并返回。第 1 个参数为“欲转换到文本的时间” ,而第 2 个参数值可以为以下常量:1、# 全部转换;2、#日期部分;3、#时间部分。在填写第二个参数时,可以填写数字,也可以直 接填写常量名,如: 时间到文本 ([2004 年 3 月 16 日 5 时 11 分 11 秒], #日期部分)2.6.4 枚举常量枚举常量是一种非常方便的常量类型, 它本身就是一个常量的集合, 将多个常量以成员 的形式,存放在一个常量中,使用的格式为 #枚举常量名.成员名 这里要注意,枚举常量只是一种常量的表现形式,是由易语言支持库定义的常量,和普 通常量相同,但只能由用户来调用,但不能自定义。 易语言中有很多支持库中使用了枚举常量,如核心支持库中定义的“变体类型”“变 , 体类型”提供变体型中所能够容纳数据类型的枚举值。如表 3-4 中的某类型枚举常量可存放 ”取回当前变体型对象的数据类型。 于变体型中,通过“变体型.取类型()变体类型常量成员及常量值变体类型 枚举常量集合类型 成员 未知 初空 数值型 文本型 逻辑型 日期型 对象型 错误值型 数值型数组 文本型数组 逻辑型数组 日期型数组 对象型数组 常量值为 -1 常量值为 0 常量值为 1 常量值为 2 常量值为 3 常量值为 4 常量值为 5 常量值为 6 常量值为 7 常量值为 8 常量值为 9 常量值为 10 常量值为 11 描 述30 错误值型数组 变体型数组常量值为 12 常量值为 13表中,列出了“变体类型”常量的所有成员名及成员的常量值,在程序中,如果想调用 “变体类型”常量中的“日期型”成员,该成员的常量值为 4,程序中调用该成员就等于调 用了 4 这个整数,例如用信息框显示出该成员使用代码: 信息框 (#变体类型.日期型, 0, ) 运行后,信息框将显示 4。 这里要注意,在核心支持库中还定义了“变体型”“变体型”和“变体类型”不同, , “变 体型”是一种数据类型,可以将一个变量的类型定义成“变体型”“变体型”的变量,可以 , 加入成员和改变成员的值;而“变体类型”是一个常量,其值只可以调用而不可以改变。 “变体型”变量的成员和值,要通过调用命令来改变。 例如程序定义一个“变体型”变量,并加入一个文本型成员,然后给该成员赋值“” , 然后用信息框显示该成员,代码如下:对“变体型”变量的操作的其他一些命令包括:清除() 、取类型() 、取数组成员数() 、 取文本() 、取数值() 、取逻辑值() 、取日期() 、取对象() 、取变体型() 、赋值() 、 创建数组() 。程序中可以使用这些命令来操作“变体型”变量。2.6.5 自定义常量除了各支持库定义的常量以外, 易语言中还可以自定义常量, 自己来规定一个新的常量 及其代表的值。自定义常量,可以定义一些固定值,编程中使用一些自定义常量还可以增加 编程的灵活性, 当程序中多个地方调用了某个自定义常量时, 如果改变这个自定义常量的值, 那这些调用该常量的地方将会自动调用改变后的新值,这样可以节省改写程序的时间。 定义了一个新的常量后,可以任意定义常量的名称,然后在“常量值”上输入该常量的 值。自定义常量的使用方法和非自定义的常量的使用方法相同,用“#”+自定义常量的名 称。 下面就用一个简单的例程来学习使用自定义常量。新建一个“Windows 窗口程序” ,在 窗口中添加1个编辑框组件、 1个标签组件和1个按钮组件。 然后按照上面介绍的方法自定 义一个常量,常量名叫“显示内容” ,然后将常量值定义为“易语言” 。这里要说明的是,如 果定义数值型的常量,直接在“常量值”上输入数值即可;如果定义文本型常量要在欲定义 的文本两端加双引号。 双击窗口中的按钮,在“_按钮 1_被单击”子程序中输入代码:31 最后运行程序,按下按钮后,可以看到标签和编辑框同时显示出“易语言” 。可以试着 在不改变代码的情况下, 直接改变自定义常量的值, 再次运行程序, 可以看到改变常量值后, 标签和编辑框显示的内容也跟着改变。2.7 命令在程序中,除了允许使用常量、变量之外,还允许使用事先定义了的命令,用户只要 给出命令名与参数的值,就可以求出相应的值来。如求 5 的平方根,可调用命令“求平方根 (5)。 ” 程序是由各种命令组合而成的, 不同的命令完成不同的工作。 易语言中提供了大量的命 令,用户可以使用这些命令来实现预想的运行效果。一个程序可以实现一种或多种功能,而 这些功能的实现都离不开程序内部调用的命令。 命令是程序的基本组成部分, 要学习易程序 的编写,首先就要了解易语言所提供的命令。2.7.1 命令的格式命令格式如下: 命令名称 (参数,...... ) 大部分命令都需要填写参数, 参数用括号括起来的, 并用逗号分隔。 部分命令无需参数, 但括号不能省略,如“结束() ”命令。各种命令所要求参数的个数以及数据类型各有不同, 由其语法所规定。例如“到文本() ”命令,该命令只需一个参数,参数内容为欲转换成文 本的数据。有些命令的参数很多,如“子文本替换() ”命令的格式如下: 子文本替换 (欲被替换的文本,欲被替换的子文本,[用作替换的子文本],[进行 替换的起始位置],[替换进行的次数],是否区分大小写)2.7.2 命令的返回值大多数命令执行完毕后都有返回值。有的命令返回运算结果,如“求正弦() ”命令, 返回求得的正弦值;有的命令返回的执行的结果,如“取文本左边() ”命令,返回取出的 文本内容;有的命令返回运行是否成功的状态,如“创建目录() ”命令,创建成功则返回 “真” ,创建失败则返回“假”等等。大部分时候,当前命令的返回值对后续命令来说非常 重要。例如一个命令如果运行成功了,就提示成功,否则提示失败, “Windows 控制台程序” 的代码如下:32 各命令的语法规定了其返回值的数据类型, 在实际使用中, 应当注意有可能需要对返回 值的数据类型加以转换, 例如, 文本数据只接收文本型, 因此要显示一个数字就可以使用 “到 文本() ”命令将数字转换为文本形式显示,代码如下: 文本变量 = 到文本(求平方根 (100)) “求平方根() ”命令的返回值是一个数值型的,如果要以文本方式显示,就要用“到 文本() ”命令进行转换。 有些命令的返回值是一个通用型的数据, 代表根据参数不同, 其返回值数据类型也可以 不同。例如“多项选择(,”命令。该命令有 2 个参数,第一个参数是索引值,第二个参数 ) 是待选项,待选项可以重复添加。待选项数据类型是通用型(表示参数 2 可以是任意数据类 型)的,返回哪个待选项取决于第一个参数的索引值。索引值是 1 则返回第一个待选项;索 引值是 2 则返回第二个待选项。所以,所选项是哪种类型的数据,返回值就为哪种类型的数 据。下面就编写一个小程序来了解一下多项选择命令。 新建一个“Windows 控制台程序” ,在“_启动子程序”中输入如下代码:按“F5 键”试运行程序,输入“4”后按“回车键” ,将显示待日期时间“2005 年 10 月 1 日” 。 有些命令无返回值,如“结束() ”命令,此类无返回值的命令运行后不返回任何值, 所以直接使用即可,例如:33 命令是否有返回值,返回值的数据类型,都可以通过即时帮助系统查找到。2.7.5 文本操作类命令在编写程序时免不了对大量的文本型的数据进行操作, 文本操作类的命令比较全面, 下 面介绍常用文本操作命令。 1. “取文本长度() ”命令 获取指定文本的字节长度, 半角数字和字符为 1 个字节的长度, 汉字和全角标点符号为 2 个字节的长度,如: 取文本长度(文本变量) 可以取出变量中文本的长度。 2. “取文本左边()、 ”“取文本右边() ”和“取文本中间() ”命令 这 3 个命令可以取出一段文本中任意位置的文本。如: 取文本左边(文本变量,4) 可以将变量中的前 4 个字符取出来。 3. “寻找文本() ”和“倒找文本() ”命令 从当前文本的指定位置开始寻找指定的文本,并返回最先找到该文本的位置。 “寻找文 本() ”是从指定文本的首部开始寻找, “倒找文本() ”相反。例如: 寻找文本 (文本变量, “:”, 1, 假) 代码运行后会返回找到的第一个“: ”的位置。 4. “文本替换() ”命令 该命令可以将指定文本的某一部分用其它的文本替换。例如: 文本变量= 文本替换 (文本变量, 4, 2, “xx”) 将“文本变量”中第 4 个位置开始的 2 个字符替换成“xx” ,并将结果保存到“文本变 量”中。2.7.6 时间操作类命令时间操作类命令也是较常用的一类命令,可以对日期时间型数据进行操作。 1. “到时间() ”和“时间到文本() ”命令 这 2 个命令用来在日期时间型数据和文本型数据之间转换。例如: 到时间 (“ 12:30:25”)34 “时间到文本”命令可以将指定的部分的时间转换成文本。例如: 时间到文本 (取现行时间 (), #日期部分) 2. “取现行时间() ”命令 可以将当前系统的日期及时间取出,例如用“日期时间变量”保存当前的时间: 日期时间变量=取现行时间() 被保存时间是一个包括“年月日时分秒”的完整时间,如果想取出时间中的指定部分, 需要使用其它时间操作类型命令来实现。 3.取指定时间部分的命令 用来取出指定时间部分的命令有: “取时间部分()、 ”“取年份()、 ”“取月份()、 ”“取 星期几()、 ”“取小时()、 ”“取分钟()、 ”“取日()、 ”“取秒()、 ”“取日期()、 ”“取时间 () 。其中“取日期() ”和“取时间() ”命令返回值是日期时间型,其它返回值都为整数 型。 “取时间部分() ”命令可以取出日期时间型数据中的指定部分数值。例如: (1)取当前时间的年份: 取时间部分 (取现行时间 (), #年份) (2)用“日期时间变量”保存当前时间的“年、月、日” : 日期时间变量= 取日期 (取现行时间 ())2.7.7 位运算命令位运算是指对数据进行二进制的逐位运算。 计算机内部是采用二进制方式存储和处理数 据的,输入到计算机的数字、字母、汉字等信息都以二进制的形式存储。 所谓二进制,就是以“逢二进一,借一当二”为原则,对数值进行计数的进位制,和我 们日常使用的十进制类似,只不过十进制是“逢十进一” 。 位的英文是 Bit,所以也常被称为比特位。 易语言中的位运算命令 (1) “位取反() ”命令 “位取反()”命令对二进制数值每一比特位的值取反,即 0 变为 1,1 变为 0,返回 值是转换后的十进制数。 例如: 文本变量 = 到文本 (位取反 (80)) 代码运行后, “文本变量”将保存“位取反”运算结果“-81” 。 (2) “位与() ”命令 “位与()”命令对二进制数值的共同比特位进行“与”运算,即如两个或多个数值的 共同位均为 1,则返回值的对应位也为 1,否则为 0,运算完毕后,返回值是转换后的十进 制数。 比如: 一个二进制数的第 4 位为 1,另一个二进制数的第四位为 1,则返回值的第四位为 1; 一个二进制数的第 4 位为 0,另一个二进制数的第四位为 1,则返回值的第四位为 0; 一个二进制数的第 4 位为 1,另一个二进制数的第四位为 0,则返回值的第四位为 0; 一个二进制数的第 4 位为 0,另一个二进制数的第四位为 0,则返回值的第四位为 0; 例如: 文本变量 = 到文本 (位与 (56, 89)) 运行后可以得出的结果为“24” 56 和 89 分别转换成二进制数为: 和 0101 。 1001,进行与的运算后即会得出结果“”即“24” 。 (3) “位或() ”命令35 “位或()”命令对二进制数值进行“或”运算,并将运算后结果以十进制返回。如两 个或多个数值的共同位均为 0,则返回值的对应位也为 0,否则为 1。运算完毕后,返回值 是转换后的十进制数。 一个数值的第 4 位为 1,另一个数值的第四位为 1,则返回值的第四位为 1; 一个数值的第 4 位为 0,另一个数值的第四位为 1,则返回值的第四位为 1; 一个数值的第 4 位为 1,另一个数值的第四位为 0,则返回值的第四位为 1; 一个数值的第 4 位为 0,另一个数值的第四位为 0,则返回值的第四位为 0; 例如: 文本变量 = 到文本 (位或 (56, 89)) 运行后的结果为“121” 。56 和 89 分别转换成二进制数为: 和 ,进 行或的运算后即会得出结果“”即“121” 。 (4) “位异或() ”命令 “位异或()”命令对二进制数值的共同比特位进行“异或”运算,并将运算结果以十 进制返回。如果两个或多个数值的共同位相等(均为 0 或均为 1),则返回值的对应位就是 0,否则为 1。运算完毕后,返回值是转换后的十进制数。 比如: 一个数值的第 4 位为 0,另一个数值的第四位为 1,则返回值的第四位为 1; 一个数值的第 4 位为 1,另一个数值的第四位为 0,则返回值的第四位为 1; 一个数值的第 4 位为 1,另一个数值的第四位为 1,则返回值的第四位为 0; 一个数值的第 4 位为 0,另一个数值的第四位为 0,则返回值的第四位为 0; 例如: 文本变量 = 到文本 (位异或 (56, 89)) 运行后的结果为“97” 。56 和 89 分别转换成二进制数为: 和 ,进 行异或的运算后即会得出结果“”即“97” 。2.7.8 其它常用命令1. “读入文件() ”和“写到文件() ”命令 “读入文件() ”命令将一个文件的所有数据读入程序,返回值是一个字节集型数据, 在命令的参数中填入欲读入文件的全路径文件名, 可以将读入的文件放在一个字节集型变量 中,如: 字节集变量=读入文件(“C:\Downloads\echs.zip”) 对读入的文件数据经过处理后,用“写到文件() ”命令写出至文件中。 “写到文件() ” 命令的第一个参数指定写出文件的全路径文件名, 文件的扩展名要和文件格式相匹配, 写出 的文件才能正常访问。例如将字节集型数据“字节集变量”中的内容写到文件中: 写到文件 (“C:\echs.zip”, 字节集变量) 2. “寻找文件() ”命令 “寻找文件() ”命令可以在指定路径下寻找文件或目录,找到后就返回与条件匹配的 文件名或目录名,如果没找到就返回一个空文本。命令的第一个参数为欲寻找的文件名,第 二个参数为欲寻找文件的文件属性。例如寻找一个子目录: 寻找文件 (“c:\目录”, #子目录) 3. “创建目录() ”和“删除目录() ”命令 “创建目录() ”命令可以创建一个新目录,创建成功返回真,失败返回假。 “删除目录 () ”命令可以用来删除一个目录,删除成功返回真,失败返回假。 “创建目录() ”命令创建目录时,其父目录必须存在,否则会创建失败,即该命令不36 能一次性创建多级目录。因此,如果要创建多级子目录,需要判断每一级目录的父目录是否 存在,一层一层的创建各级子目录。 4. “打开文件() ”命令 “打开文件() ”用来打开一个指定的文件,成功返回被打开文件的文件号。虽然该命 令只用来打开一个文件,并不对文件进行其它操作,但本命令取得的文件号,是很多文件操 作类命令都要使用到的,如“读入文本() ”和“写出文本() ”命令、 “读入数据() ”和“写 出数据() ”命令等等。使用此命令可以比读入文件命令实现更多的操作。 例如将一个文本文件打开并用“读入文本() ”命令将读入的文本保存到“文本变量” 中: 文本变量 = 读入文本 (打开文件 (“c:\帮助.txt”, , ), )2.8 运算符和表达式将数据类型相同的常量、变量和函数用规定的运算符连接起来,就构成了表达式。表 达式本身有一个值。 编写代码时, 除了大量的使用命令或对组件的属性或方法进行操作, 运算符的使用也非 常重要。程序中所有涉及到的算术运算或关系比较运算等操作,都需要使用运算符。 易语言中提供了大量的运算符。例如赋值时使用的“=”号,就是赋值运算符,比较大 小时使用的“&”和“&”号,是关系运算符等等。如表 2-2 所示。易语言运算符 运算符分类 运算符 + - 算术运算符号 * / \ % & & = 或 == 关系运算符 &= &= && 或 != ?= 逻辑运算符 && 或 QIE ||或 HUO 赋值运算符 = 运算符含义 加法运算,将加号两边的数相加 减法运算,将减号两边的数相减;负号 乘法运算,将乘号两边的数相乘 除法运算,将除号两边的数相除 整除运算,将整除号两边的数整除 求余数运算 判断是否大于 判断是否小于 判断是否等于 判断是否大于等于 判断是否小于等于 判断是否不等于 判断是否约等于 逻辑与运算符,可以连接几个必须同时 满足的条件 逻辑或运算符,可以连接几个可选条件 将等号后面的值赋值给等号前面的对象 代码中显示 + - × ÷ \ % > < = ≥ ≤ ≠ ≈ 且 或 =程序中的运算符都有其优先级别, 在程序运行的时候会按照符号的优先级别, 从高到低 依次运行。运算符的优先级别参见下表。易语言常用运算符的优先级37 运算符 ()(小括号) *(乘) /(除)优先级 最高\(整除) %(求余数) +(加) &(小于) &=(小于等于) ==(等于) -(减) &(大于) &=(大于等于) ?=(约等于)!=(不等于) &&(逻辑与) ||(逻辑或) =(赋值)在这里我们已看出:算术表达式中算术运算符号的优先顺序,和在数学上是完全一样 的: (1)如果有括号,必须先做括号内的。在程序中,没有大、中、小括号之分,一律使 用应括号() ,括号内可以套用括号,但不得超过 36 层。这就同数学上一样,先做最内层括 号中的计算,层层向外脱,最后处理最外层括号中的计算。 (2)无论括号内或括号外,函数计算优先于其它算术运算符。 (3)乘、除运算优先于加、减运算。乘或除同时出现在一个表达式中时,先完成左边 的后完成右边的(即以先后出现顺序为序)。 (4)最后做加、减运算。加、减号同时出现在一个表达式中时,也以先后出现的顺序 为序。 对于初学者来说,下列几点要格外注意: 1.在数学上,代表两个数的字母相乘时,可以连写。如 A 代表一个数,B 代表一个数, 则可用 AB 代表两个数相乘。 在表达式中, 这是绝对不允许的(这时它会把 AB 当作变量名)。 必须写成 A*B。用 A.B 也是不允许的。 2./号代表除号。 3.左右括号必须成对出现。且不得用方括号[ ]或花括号{}代替。2.8.1 算术运算符和算术表达式1.算术运算符 在程序中表示为: +,加法运算。如:3+2 ―,减法运算或负值运算。如:10-2、-10 ×,乘法运算。如:2×3 /,除法运算。如:20/12 \,整除运算。如:12\5,运算后会将保留一个整数,小数部分将被舍去 %,余数运算。还可以输入“求余数” ,第一个参数填被除数,第二个参数填除数,第 二个参数可以重复添加。如:20%100%120 2.算术表达式38 用算术符号和括号将运算对象连接起来的, 符合易语言语法规则的式子, 称易语言算术 表达式。例如,下面是一个合法的易语言算术表达式: 变量=((6 × 12 + 16 ÷ 8) - 23) \ 10 表达式中运算的先后,是按照运算符的优先级别来进行判定的。 算式计算的结果可以被程序调用。2.8.2 赋值运算符和赋值表达式1. “=”是赋值运算符,在程序中给变量赋值或用代码改变组件属性,大部分都是使用 “=”进行赋值的,将等号后面的值赋值给等号前面的赋值对象。 2.赋值表达式 一个正确的赋值表达式, 一定要保证欲赋的值和被赋值的对象之间的数据类型相同, 不 同的数据类型要转换成相同的数据类型后再赋值。 3.赋值运算符“=”和关系运算符“=”的区别。虽然 2 个运算符使用的是相同的符 号,但含义}

我要回帖

更多关于 易语言支持linux 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信