第一节 从“截取文本”功能说起
如上图,笔者对图中的图形指令做了功能描述,可以想象,如果笔者不做功能描述,可能没有人能知道这个指令的使用要领。这个图形指令样式设计与它的功能差强人意,那么它应该设计成什么样子呢? 
如上图,笔者重新 策划了一下图形样式,现在看上去是不是更容易理解和上手了。
好,接下来我们就讲解如何建立这个图形库。
第二节 导入上一课的张三文本处理库1.0.2



如上图,导入上一课给大家留下的张三文本处理库1.0.2版。
第二节 在旧图形库中新加图形块
第一步 新建图形块

如上图,新建,复制,导入,都能添加图形块。为了重新讲解图形块的完整搭建过程,我们选择新建。

如上图,点击新建后,系统添加了一个默认图形块。
第二步 为新加图形块命名
一个图形库中可以有多个图形块,我们新建一个图形块后,必须先为它重新命名,后期操作中,很多步骤需要基于一个合理的图块名。

如上图,我们平白直叙,图形块名字就叫“张三_文本处理库_截取文本块”的汉语拼音,名称结构为:作者_库名_图块名,这种大白话形式的命名很重要,它能确保当库意外丢失时,最大限度帮助你获知是哪一个库丢失了,从而能让你尽快找回它。
第三步 初步部署图形开孔

如上图,我们迅速放置三个“值输入”框,也就是开孔框,分别命名为V1V2V3作为三个参数。
“值输入”框从何而来,以及值输入框的作用,在上几篇文章中均由详述。本篇略过。
第四步 初步编纂文本描述语

如上图,简单编写描述文本,使图形块看上去具有一定可读性,让使用者不用过多翻阅资料就能会使用它。
因本图形是截取文本,截取到的内容需要提交给左侧接收它,因此我们连接方式设为左侧连接。
“文本条”从何获得,前几篇文章已经详细介绍过,本篇略。
第五步 保存并在XML文件中发布新图形块

如上图,先保存图形块,然后点击XML文件编辑。

如上图,点开XML编辑画面后,我们看到上一节课保存好的“文本查找”指令的XML文档内容。
因我们刚才新建的图形块于“文本查找”图形块样式差不多,我们可以直接复制文本查找图形块的XML内容,简单修改一下,完成“文本截取”图形块的XML发布。
XNL文本,决定了图形块在图形化菜单中的输出样式,如果未编辑或编辑错误,图形菜单中就不会出现这个图形块。

如上图,两个图形块的格式大致一样,因此我们需要改的地方不多。
1是修改一下图块名字,这是必须的。
2是要修改一下V2参数,由文本性质变为数字性质,并默认为0,因为文本索引位置是从0开始的,0为首位置。
3是要修改一下V3的默认值,我们默认截取1个字节。因此改为1.

如上图,我们按照要求修改好了。笔者在这里要嘱咐一下:XML文档中,模块名字一定要正确,通常是全部小写,,笔者也多次尝试使用大小写混合,不是很顺利。因此我们尽量用小写命名模块。一旦XML中,模块命名不正确,图形菜单中将不会出现正确的图形块。

如上图,我们先点击保存,ESC退出XML画面,再点击预览。

如上图,在预览画面上的图形菜单里,我们看到了我们刚编辑好的信息图形“截图文本”指令。图形样式设计完成。
第三节 “截取文本”图形代码设计
第一步 清场


如何长图,我们把新建图形块的默认内容清楚,重新设计。
第二步 分析代码结构

如上图,本课开头我们说所,我们是讨论如何改进图形样式设计,并不改动图形的代码部分。因此我们返回头查看一下原有图形的代码。从而分析V1,V2,V3参数是如何拼凑的。
我们看到,我们只要顺利拼凑出“String("ABCD").substring(0,1)”这句代码,并将V1,V2,V3参数正确插入,即可完成代码设计。
第三步 拼接V1部分代码


如上图,我们完成了对V1代码的拼接。
第二步 拼接V2部分代码



如上图,先添加两个插槽,在填写V2相关代码内容。完成V2部分代码的拼接。
第四步 拼接V3部分代码

如上图,我们到了关键环节,在这里我们需要做一个算法改进。原图形程序V3实际上是截取文本的结束位置,并且是1为首位,我们设计意图是V3为截取长度。因此我们需要把截取长度V3转换为截取结束位置。算法如下:
结束位置=起始位置+截取长度

如上图,我们完成了最后V3的代码,一个逗号一个括弧,V2+V3的截取长度转结束位置的算法。可以擦擦汗了。
第五步 预览代码编辑效果

如上图,我们先保存图形,再点击预览。


如上图,我们对比一下新编代码和原图代码是不是一样。看上去没什么问题。图形块代码设计部分结束。
第四节 打包发布并测试新图形
第一步 版本升级,命名ZIP文件



如上图,我们升级版本为1.1.0,无需头文件库,无需封面。最后保存库文件用中文命名,协商版本号。
第二步 导入这个新建的本地库

如上图,我们导入刚新建的1.1.0张三文本库。导入方法前几届课有介绍,本文略。
第二步 编写一个测试程序

如何闪图,我们编写一个串口接收程序,程序中,无论接受到什么内容,都从第二个位置开始截取3个字节内容,并返回到串口1,打印原始字符串,截取后的字符串,和分割符。
我们看看效果:

如上图,我们通过串口助手发送了ABCDEFG和1234567两个字符串。概图形指令按照要求,从第2位置开始截取了3个字符回来。至此我们完成对文本截取图新的样式设计的改进,还初步探索了算法的改进,我们本节课就讲到这里。谢谢朋友们关注,谢谢老师们指导。
最后留给大家一个思考题,文本截取起始位置是0,这看上去很别扭,如何把位置位置0改为起始位置是1?
下面我们把测试程序和本节课的图形库奉献给大家学习研究用。
本节图形库:
本节测试程序
|