【原创】易语言基础教程第二版——By无名神棍

社区服务
高级搜索
猴岛论坛电脑百科【原创】易语言基础教程第二版——By无名神棍
发帖 回复
倒序阅读 最近浏览的帖子最近浏览的版块
9个回复

【原创】易语言基础教程第二版——By无名神棍

楼层直达
无名神棍

ZxID:11878243

等级: 大尉
事了拂衣去,深藏身与名。
举报 只看楼主 使用道具 楼主   发表于: 2011-03-06 0
— 本帖被 最致命的傷口 从 电脑技术 移动到本区(2011-05-26) —
无名神棍原创,转载请注明,QQ:235648067

一、前言

好吧,这是我第二次尝试写一个易语言教程了,以前我曾经写过一个教程,不过那个教程昙花一现,估计没有多少人知道,那会儿曾经想过将那个教程写完,无奈中国网络环境还有一家一个孩子的环境决定了大部分的孩儿都还不怎么会做人,我好心写一个教程,都能加我QQ骂我写的慢,本人感到很无奈——作为一个初中生,尤其是一个初三学生,我必然不会有太多时间来写教程,只能抽时间写一些,所有骂人者请自重。

好吧,前面只是发发牢骚,现在开始前言的正文部分,没有兴趣的请略过。

易语言作为中国人自主开发的一种新兴的编程语言,其独有的纯中文编程环境给想要学习编程,但是苦于没有门路的中国人(其实大部分是一些年轻人)打开了一扇门,正如他的名字,这种语言易学,易懂,实在是速成的不二选择。不过老生常谈的一个话题:易语言只能作为一个入门的语言,至少目前是这样,因为他很多功能甚至比不上VB,所以建议以后准备干IT业的朋友们只将易语言作为熟悉编程思想的工具,感觉差不多之后,就可以开始考虑C语言(不可视)或者VB(类似易语言的可视化环境),学习C语言的可以考虑在入门之后学习C++,JAVA之类,毫不夸张地说,C语言是现在大部分主流语言的基础。

嗯,补充一下:这次我想要试着用脱离官方化语言的方式来写,我也不会写神马类似于“十天学会易语言”,“二十天精通易语言”这些东西,这是不可能的,哪怕是最简单的易语言,也需要长时间的钻研才可能,所以奉劝想要速成的新手:一口成不成胖子,循序渐进才是王道啊。


本帖de评分: 1 条评分 DB +50
DB+50

优秀文章

人面不知何处去,桃花依旧笑春风。
无名神棍

ZxID:11878243

等级: 大尉
事了拂衣去,深藏身与名。
举报 只看该作者 沙发   发表于: 2011-03-06 0
二、写给新手

这一部分是写给新手的,当然,有兴趣的话,老手也可以选择看一看。

嗯,这一章主要是奉劝新手,学习是自己的事情,不要指望网上有太多的雷锋,我也当过雷锋,不过结果就是吃力不讨好,帮人解决问题,结果因为没有把代码全部写出来让他直接复制被骂,这也是导致“雷锋”消失的原因。

上一段只是回忆一下而已,总之,新手们必须记住:最好的老师就是百度和谷歌。



还有一些新手(准确的说是大部分)拿着一下像是“精易模块”,“超级模块”之类的模块就把自己当成了高手,当然,这不是说不让大家用模块,模块确实可以在很大程度上帮助程序快速开发,但是过于依赖模块会让你迷失方向,最终一事无成,在这一点上,我对易语言提供的“模块功能”表示质疑,因为这确实会让很多新手知其然,却不知所以然。

PS:本人现在写程序也有时会用模块,只不过模块是本人自己写的,用来快速开发,所以喷子可以歇一歇了。
本帖de评分: 1 条评分 DB +10
DB+10

优秀文章

人面不知何处去,桃花依旧笑春风。
无名神棍

ZxID:11878243

等级: 大尉
事了拂衣去,深藏身与名。
举报 只看该作者 板凳   发表于: 2011-03-06 0
三、数据类型

这一部分我决定沿用上一个教程的方法:只介绍最常用的类型,至于那些八辈子也难得用一次的,还是请各位自己在今后的使用中自己摸索吧。

要说数据类型,首先来说说变量,变量可以理解为一个内存空间,里面用来储存程序运行需要的数据,通过预先定义的变量名称来访问他。而不同的数据类型,决定了那片内存区域保存的数据的内容。

首先来说说整数型。

整数型,顾名思义,就是一组数字,只不过要注意前面的“整数”,也就是说,这个类型不可能储存带有小数点的数字,如果你要用类型转换语句强制性将带小数点的数字储存为整数型,那么不好意思,小数点之后的内容都会被自动删除。就如同C++中的int类型。

但是不是说易语言不支持储存带有小数点的数字,这就要介绍一个经常用到的数据类型:双精度小数型。

双精度小数型,顾名思义,用来储存小数的一种类型,其实在易语言中还有一个单精度小数型,但是个人还是比较喜欢用双精度小数型,因为他可以储存的位数等比单精度小数型多,可以在很大程度上避免数据的丢失。

之后就是逻辑型。

逻辑型说白了,只有两种可能:真,或者假。大部分时候用来判断组件是否被选中等。

然后是最常用的一个类型:文本型。

文本型也是顾名思义,用来储存一段文本,前面的整数型,双精度小数型只要直接输入数字就可以,而文本型需要用双引号括起来,易语言才会将他当作文本型来处理,下面是一个小例子:



1.11          双精度小数型

1              整数型

“1.11”      文本型



文本型可以说是基本上无所不包,大部分基本类型(字节集等除外)都可以完美的用类型转换语句转换为文本型。

然后说字节集,其实字节集可以说是字节型的数组,至于数组,会在下面介绍。

相信很多人都知道,文件在计算机内是以二进制的形式储存的,后来才发明了八进制,十进制,十六进制等等,而字节集大家可以认为他是将文件的二进制转换为了十进制,之后储存入里面。

下面来说数组。

首先来假设一个情况,你编写了一个小程序,希望通过这个小程序来处理一些数据,但是你只知道这些数据是什么类型,却不知道这些数据有多少条,少了的话,也许会有人选择新建十多个变量来储存,但是如果有上万条数据呢?

在这种情况下,数组应运而生(其实我是想说“历史的车轱辘不可避免的又往前滚了下”),他通过“变量名称[索引]”的形式来访问数据,索引从1开始(注意:其他语言中是从0开始),每个索引都可以当成一个变量来使用。

这样,比如你要调用第10000条数据,就可以通过“变量名称[10000]”来调用了。

顺便补充一句,很多命令的解释大家可以在易语言IDE界面的左面那个“支持库”里看到(那里有“支持库”,“程序”,“属性”三个按钮,属性就是你平时设置按钮标题等等),数组与字节集相关命令在“系统核心支持哭”的“数组操作”,“字节集操作”部分。
本帖de评分: 1 条评分 DB +7
人面不知何处去,桃花依旧笑春风。
无名神棍

ZxID:11878243

等级: 大尉
事了拂衣去,深藏身与名。
举报 只看该作者 地板   发表于: 2011-03-06 0
四、基础函数

嗯,话说上次也是写到函数这一章就终结了,呵呵,鄙视一下伸手党。

基础函数部分沿用上一个教程的方法,循序渐进,以一些小程序的实例来说明一部分函数,中间会附带一些易语言IDE的提示。

首先来说明一下,操作控件时的命令是:控件名.命令名

也可以是:控件名.空间参数名

当你打出“.”时,IDE就会提示你后面可以使用哪些命令。

另外,易语言IDE自带几种输入法,我个人喜欢首拼输入法,就是只需要输入每个字第一个汉语拼音字母就OK,比如:编辑框1只需要输入bjk1,易语言就会自动提示,然后空格就OK,个人感觉这样开发起来效率比其他几种自带输入法高。



最后说明一下,几乎所有编程语言中都包含一个概念:常量。

常量的用途可以理解为“用一组可以理解的语句或者一个便于理解的词语来代表一组难以记忆数字等”也许有些绕口,临时总结的呵呵。

打个比方,程序中一个命令你需要使用一个参数:523568,但是你记不住这串数字,这个时候,就应该使用常量,只需要定义一个常量,将数值修改为523568,然后在需要使用的地方使用“#常量名”就可以调用常量了。

Hello,World!

依照编程学习的惯例,第一个程序就是“Hello,World!”,我学过很多语言,几乎都是以这个程序作为第一个的。

这个实例程序,我准备使用两种方法:1、在标签上显示  2、弹出信息框

首先来看看弹出标签的:首先在窗体中添加一个“标签”,一个“按钮”,之后双击按钮来写代码:

标签1.标题 = “Hello,World!”

呵呵,很简单的一句代码,就像上面说的:组建名.参数名



然后是弹出一个信息框,说到信息框,首先来看看易语言IDE对“信息框”命令给出的提示:

    调用格式: 〈整数型〉 信息框 (通用型 提示信息,整数型 按钮,[文本型 窗口标题]) - 系统核心支持库->系统处理

    英文名称:MsgBox

    在对话框中显示信息,等待用户单击按钮,并返回一个整数告诉用户单击哪一个按钮。该整数为以下常量值之一: 0、#确认钮; 1、#取消钮; 2、#放弃钮; 3、#重试钮; 4、#忽略钮; 5、#是钮; 6、#否钮。如果对话框有“取消”按钮,则按下 ESC 键与单击“取消”按钮的效果相同。本命令为初级命令。

    参数<1>的名称为“提示信息”,类型为“通用型(all)”。提示信息只能为文本、数值、逻辑值或日期时间。如果提示信息为文本且包含多行,可在各行之间用回车符 (即“字符 (13)”)、换行符 (即“字符 (10)”) 或回车换行符的组合 (即:“字符 (13) + 字符 (10)”) 来分隔。

    参数<2>的名称为“按钮”,类型为“整数型(int)”,初始值为“0”。参数值由以下几组常量值组成,在将这些常量值相加以生成参数值时,每组值只能取用一个数字(第五组除外):

  第一组(描述对话框中显示按钮的类型与数目):

    0、#确认钮; 1、#确认取消钮; 2、#放弃重试忽略钮; 3、#取消是否钮;    4、#是否钮; 5、#重试取消钮

  第二组(描述图标的样式):

    16、#错误图标; 32、#询问图标; 48、#警告图标; 64、#信息图标



所以说,要多看看易语言的提示,他确实是一个很好的老师。

下面来写代码:

信息框 (“Hello,World!”, 64 + 0, “你好,世界!”)

当然,如果你要写成下面这样也可以:

信息框 (“Hello,World!”, #信息图标 + #默认按钮一, “你好,世界!”)
本帖de评分: 1 条评分 DB +10
DB+10

人面不知何处去,桃花依旧笑春风。
无名神棍

ZxID:11878243

等级: 大尉
事了拂衣去,深藏身与名。
举报 只看该作者 4楼  发表于: 2011-03-06 0
②记事本

嗯,好吧。。。其实我也不想第二个就直接弄记事本的。。。不过貌似我那会儿就是这么学的,我也不知道在Hello,World之后该弄神马了。。。干脆就直接弄记事本吧。

首先,因为是新手教程,所以这个记事本只是一个最初级的,也只有最初级的功能:打开TXT文件,保存TXT文件,判断文件是否修改(修改则提示保存),另存为,字体修改。

嗯,就先弄这么多吧,其他我真想不到了。。。

写记事本的话先来介绍一个控件:通用对话框。

通用对话框这个控件应用确实很广。。。基本只要是个和用户有交互的程序,十个有九个都用到了这个空间或者说类似的控件,只不过有些语言的这个控件是分开的,也就是说:只是对话框,而不是“通用对话框”。

通用对话框,顾名思义,就是用来干神马都行,打开,保存,字体等等,所以这次记事本的打开文件,保存文件,修改字体时都会用到他。

嗯,下面来正式说记事本的编写。

先说明一下,为了确定是否已经修改,应该建立一个逻辑型全局变量:全局_是否修改(名字可以任意修改),退出时检查这个变量,如果值是真,就提示保存。

首先要实现的,就是“新建”,毕竟你不可能让用户把内容全部选中,然后删除吧。。。

在启动窗口创建完毕时,先初始化一下是否修改:

全局_是否修改 = 假

之后,开始写新建的代码:

编辑框1.内容 = “”

全局_文件名 = “”

全局_是否修改 = 假

全局_文件名是一个文本型全局变量,用来记录当前打开的文件的文件名,保存时会用到。

然后来写打开,这里会用到通用对话框:

通用对话框1.类型 = 0

通用对话框1.标题 = “打开文件”

通用对话框1.过滤器 = “TXT文本文件(*.txt)|*.txt”

通用对话框1.文件名 = “”

通用对话框1.打开 ()

.如果真 (通用对话框1.文件名 ≠ “”)

    编辑框1.内容 = 到文本 (读入文件 (通用对话框1.文件名))

.如果真结束

可以看到,前面首先初始化通用对话框,类型0是代表打开文件,之后修改通用对话框的标题,一般来说是让用户明白这个对话框的用处,之后设置过滤器,也就是说只显示指定后缀名的文件,之后初始化一下文件名,再打开(显示)对话框然后使用“如果真”判断文件名是否为空,因为当点取消时会返回空文件名,如果不为空的话,就使用“读入文件”命令来读入文件。

下面来看看“读入文件”命令的介绍:

    调用格式: 〈字节集〉 读入文件 (文本型 文件名) - 系统核心支持库->磁盘操作

    英文名称:ReadFile

    返回一个字节集,其中包含指定文件的所有数据。本命令为初级命令。

    参数<1>的名称为“文件名”,类型为“文本型(text)”。

可以看到,这个命令会返回一个字节集型的数据,但是编辑框的内容属性是文本型,所以使用“到文本”命令来强制转换类型。



看到这里,就可以体现出易语言开发小工具的简单了,不像VB,还需要使用While Not EOF(1)之类的循环来读入,易语言只需要一行代码就可以搞定。



然后来说说文本的保存,来看代码:



.如果 (全局_文件名 ≠ “”)

    写到文件 (全局_文件名, 到字节集 (编辑框1.内容))

.否则

    通用对话框1.类型 = 1

    通用对话框1.标题 = “保存文件”

    通用对话框1.过滤器 = “TXT文本文件(*.txt)|*.txt”

    通用对话框1.默认文件后缀 = “*.txt”

    通用对话框1.文件名 = “”

    通用对话框1.打开 ()

    .如果真 (通用对话框1.文件名 ≠ “”)

        写到文件 (通用对话框1.文件名, 到字节集 (编辑框1.内容))

    .如果真结束



.如果结束



这里可以看到,首先使用了一个“如果”命令来判断文件名是否为空,不为空则使用“写到文件”命令保存,为空则执行类似于打开文件的操作,只不过要注意:类型1代表保存,而那个“默认文件后缀”则是说当用户没有设定后缀名时,默认使用的后缀名。

在保存之后,将全局_文件名修改为通用对话框1的文件名,下次直接点保存就可以,无需再跳出对话框。

下面来看写到文件:

    调用格式: 〈逻辑型〉 写到文件 (文本型 文件名,字节集 欲写入文件的数据,... ) - 系统核心支持库->磁盘操作

    英文名称:WriteFile

    本命令用作将一个或数个字节集顺序写到指定文件中,文件原有内容被覆盖。成功返回真,失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

    参数<1>的名称为“文件名”,类型为“文本型(text)”。

    参数<2>的名称为“欲写入文件的数据”,类型为“字节集(bin)”。

由于第二个参数为字节集型,所以使用“到字节集”强制转换类型。

这个命令也可以用于一些文件的修改,或者将文件嵌入程序等等,以后有时间的话会谈到。
本帖de评分: 1 条评分 DB +10
DB+10

人面不知何处去,桃花依旧笑春风。
无名神棍

ZxID:11878243

等级: 大尉
事了拂衣去,深藏身与名。
举报 只看该作者 5楼  发表于: 2011-03-06 0
嗯。。。好吧。。。先写这么多。。。看看大家反应再决定要不要继续写。。。闪人先。。。明天早起写作业。。。还有三个多月中考。。。哎。。。
本帖de评分: 1 条评分 DB +5
DB+5

加分支持,这么多字不容易呀!!

人面不知何处去,桃花依旧笑春风。
叶晏

ZxID:11457617

等级: 元老
举报 只看该作者 6楼  发表于: 2011-03-06 0
楼主一秒钟一帖,汗~,是先写好吗?
忠信

ZxID:13970226

等级: 禁止发言

举报 只看该作者 7楼  发表于: 2011-03-06 0
- - 这个。 不太相信
无名神棍

ZxID:11878243

等级: 大尉
事了拂衣去,深藏身与名。
举报 只看该作者 8楼  发表于: 2011-03-06 0
= =汗一个,我先写WORD里,然后复制来的
人面不知何处去,桃花依旧笑春风。
无名神棍

ZxID:11878243

等级: 大尉
事了拂衣去,深藏身与名。
举报 只看该作者 9楼  发表于: 2011-03-06 0
嗯。。。好吧。。。来说说查找文本,顺便说下,这是我先写WORD里然后复制到论坛的,不是从其他地方复制过来打上原创标签的。。。



对于查找文本,易语言本身就提供了一个很方便的函数:寻找文本。

首先来看看这个函数的说明。

    调用格式: 〈整数型〉 寻找文本 (文本型 被搜寻的文本,文本型 欲寻找的文本,[整数型起始搜寻位置],逻辑型 是否不区分大小写) - 系统核心支持库->文本操作

    英文名称:InStr

    返回一个整数值,指定一文本在另一文本中最先出现的位置,位置值从 1 开始。如果未找到,返回-1。本命令为初级命令。

    参数<1>的名称为“被搜寻的文本”,类型为“文本型(text)”。

    参数<2>的名称为“欲寻找的文本”,类型为“文本型(text)”。

    参数<3>的名称为“起始搜寻位置”,类型为“整数型(int)”,可以被省略。位置值从 1 开始。如果本参数被省略,默认为 1 。

    参数<4>的名称为“是否不区分大小写”,类型为“逻辑型(bool)”,初始值为“假”。为真不区分大小写,为假区分。



首先,第一个参数是说你要在这个文本里寻找内容。

第二个参数是说你要寻找那个内容

第三个是说从哪里开始找,用来实现“寻找下一个”

第四个。。。只要你懂中国字就明白



这里我就不弄一个专门窗口了,直接弄个输入框就OK。

.版本 2



.子程序 _寻找_被选择

.局部变量 局部_要搜寻文本, 文本型

.局部变量 局部_返回值, 逻辑型

.局部变量 局部_找到位置, 整数型



局部_返回值 = 输入框 (“请输入要寻找的文本”, “寻找文本”, 局部_要搜寻文本, 局部_要搜寻文本, 1)

.如果真 (局部_返回值 ≠ 假)

    局部_找到位置 = 寻找文本 (编辑框1.内容, 局部_要搜寻文本, 1, 假)

    .如果 (局部_找到位置 ≠ -1)

        编辑框1.起始选择位置 = 局部_找到位置

        编辑框1.被选择字符数 = 取文本长度 (局部_要搜寻文本)

    .否则

        信息框 (“没有找到指定内容”, 0, )

    .如果结束



.如果真结束

嗯,首先,弹出一个输入框来让用户输入要查找的内容,并且获取其返回值,要知道返回值的用处,就先来看看输入框的说明。

    调用格式: 〈逻辑型〉 输入框 ([文本型 提示信息],[文本型 窗口标题],[文本型初始文本],通用型变量 存放输入内容的变量,[整数型 输入方式]) - 系统核心支持库->系统处理

    英文名称:InputBox

    在一对话框中显示提示,等待用户输入正文并按下按钮。如果用户在确认输入后(按下“确认输入”按钮或回车键)退出,返回真,否则返回假。本命令为初级命令。

    参数<1>的名称为“提示信息”,类型为“文本型(text)”,可以被省略。如果提示信息包含多行,可在各行之间用回车符 (即“字符 (13)”)、换行符 (即“字符 (10)”) 或回车换行符的组合 (即:“字符 (13) + 字符 (10)”) 来分隔。如果提示信息太长或行数过多,超过部分将不会被显示出来。

    参数<2>的名称为“窗口标题”,类型为“文本型(text)”,可以被省略。参数值指定显示在对话框标题栏中的文本。如果省略,默认为文本“请输入:”。

    参数<3>的名称为“初始文本”,类型为“文本型(text)”,可以被省略。参数值指定初始设置到对话框输入文本框中的内容。

    参数<4>的名称为“存放输入内容的变量”,类型为“通用型(all)”,提供参数数据时只能提供变量。参数值所指定的变量可以为数值或文本型,用于以不同的数据类型取回输入内容。

    参数<5>的名称为“输入方式”,类型为“整数型(int)”,可以被省略。参数值可以为以下常量值: 1、#输入文本; 2、#输入整数; 3、#输入小数; 4、#输入密码。如果省略本参数,默认为“#输入文本”。



可以看出,当用户是直接关闭输入框时,他会返回假,所以就需要先判断是否为假,才能确定要不要搜索。

之后,开始搜索,寻找文本会返回这个内容在文本内出现的位置,之后只需要设置起始选择位置和被选择字符数就OK。

这里只说单独搜索一次的,要实现“寻找下一个”,只需要修改第三个参数:“起始搜寻位置”就OK。



今天就先写这么多。。。刚从书店回来,买了点中考题,做题去了。。。
人面不知何处去,桃花依旧笑春风。
« 返回列表
发帖 回复