前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >按键精灵——文本读写操作

按键精灵——文本读写操作

作者头像
Ed_Frey
发布2019-08-29 14:52:31
11.2K0
发布2019-08-29 14:52:31
举报
文章被收录于专栏:奔跑的键盘侠

这是奔跑的键盘侠的第128篇文章

之前有提到计划写一个文本读写的专题,但提笔的时候发现独立一篇出来不太合适,但是不独立出来篇幅又有点过长。最后写完才发现:原来隐含的知识点挺多的,自己都有点惊到了。而独立使用的场景想一时没想到,暂且作为一个命令讲解的专题吧。

在实战过程中,文本读写往往都是与其他功能模块结合使用,比如前一篇讲的日志,还有后面会讲的数组,应用极其广泛。

文本读写相关的内容在之前的帖子中有穿插讲到过一些,比如《按键精灵二三事系列第八篇——读取指定行文本内容》介绍读取txt文本内容的,再比如上篇的《按键精灵——脚本日志》就涉及了文本如何写入本地等等。

今天呢,要进行一次系统的讲解。

1

txt文本写入操作

按键精灵对文件的读写有一个专门设置了一个File 文件插件,先来简单看一眼:

命令还是十分烟花缭乱的,这里就挑一个WriteLine写文本内容来介绍吧,软件自带的注释,是让我们参考SeekFile,点到SeekFile的注释(有删减):

fileLen=Plugin.File.GetFileLength("c:\Config.txt")

handle=Plugin.File.OpenFile("c:\Config.txt")

Call Plugin.File.SeekFile(handle,fileLen)

Call Plugin.File.WriteFile(handle,"123456")

Call Plugin.File.WriteLine(handle,"abcdef")

Call Plugin.File.CloseFile(handle)

新手看起来会有点吃力,我稍微解释一下:

这6条命令都是调用按键自身的插件命令,大家知道是什么意思、怎么使用即可。看到 Plugin.开头的其实一点都不用慌,都是些现成的功能,可以直接搬用。

第一句,GetFileLength就是获取文本长度,往深一点讲,涉及到了指针,也就是往txt里写新内容,要把插入点放到末尾。比如日志文件写了100行(长度2000),下一次再写新的内容,需要把插入点放到2000后面,从2001的位置继续写;如果不设置插入点(也就是指针),默认会从开头(长度0)开始写,这样的话原有的内容就会被一个一个的覆盖。

第二句,是打开文件,然后获取此文件的句柄。句柄是windows一个非常重要的概念,有点比较难懂,就不深入了,大家只需要记住:它是程序的一个标识,有了标识,后面直接根据标识就可以对此文件进行操作。

第三句,就是指针移动到文件长度的位置。

第四句、第五句,WriteFile接着写入内容“123456”,不换行哦;而WriteLine是换一行,再写“abcdef”。

第六句,关闭这个文件,写文本完成。这句不可省略,如果省略了,那这个文件一直处在后台打开的状态中。如果重复操作n次的话,这个文件就会后台存在n个状态,会发生什么诡异的事情就不清楚了

2

txt文本读取操作

至于读取的命令,其实大同小异。贴一个ReadLine的命令简单讲一下:

fileHandle=Plugin.File.OpenFile("c:\Config.txt")

file20byte=Plugin.File.ReadFile(fileHandle,20)

fileline=Plugin.File.ReadLine(fileHandle)

Call Plugin.File.CloseFile(fileHandle)

第一句,获取文件句柄;

第二句,读取20个字节长度的内容(从头开始);

第三句读取一行内容;

第四句,关闭文件。

跟写入基本没差,唯一需要补充的是:这里面没有SeekFile的命令,但是依旧有暗藏指针的操作,体现在第二行先读20个字节,紧接着第三行的再读取一行内容,第三行这个读取行内容的代码,其实是从第21个字节起算的(第二行的读取内容,指针会随着读取命令同时移动的)。

如果上面的代码,省略了第二行,那第三行就纯粹的只是读取首行内容了。

感兴趣的小伙伴,可以动手试一下了

最后的最后,文件File插件模块,命令很多,但是只有读写命令的注释示例内容比较多。而创建文件、删除文件、移动文件、重命名、判断文件是否存在的命令,都是一行就可以实现的语法,注释看一眼,基本就能上手。过于直白的语法,这里就不赘述了,大家如果有什么疑问,欢迎留言提问

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 奔跑的键盘侠 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档