• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[技术交流] 【院刊】-【201504期】你所不知道的小代码分享 [复制链接]

1#

你所不知道的小代码分享

本文按键学院提供技术支持


按键学院交流群(1群已满):376122403

零基础学按键精灵群(2群):372671254



随着院刊一篇篇的发布,小编感觉能出院刊的题材越来越少了,或许是小编能力有限、或许是思维暂时枯竭,总之小编今日没想到比较好的题材,请大家允许小编今日在此水一发,再分享一些小知识、小代码,并请大家如果有比较好的题材或者认为重要的知识跟帖发出了,以供小编参考下,小编这厢有礼了


文件读取与写入

 

记得咱们按键3级认证问答题中有这么一道题目:读取路径为C:\ajjl.txt记事文本中所有内容,弹窗显示,请作答。(不允许出现文本中本来没有的字符串以及符号)

基本上所有童鞋的答案都是直接调用File文件插件里的ReadFileEx命令来读取(注意:ReadFileEx命令读取后默认会在每行内容后加个“|”号把每行内容隔开),然后用replace函数把“|”替换成空字符或换行符,类似代码如下:


  1. Text = Plugin.File.ReadFileEx("C:\ajjl.txt")
  2. Text=Replace (text,"|",vbcr)
  3. Msgbox Text
复制代码


这种方法确实高效、快捷,但是今天一个童鞋小小的提问却让小编犯难了:

如果要读取的文档里本身就含有“|”符号,或者有时候使用File插件无法正常读取到文档内容,我们应该怎么办呢?

下面就分享下不使用File文件插件,利用微软的文件系统对象fso实现读取和写入文本内容的代码:

  1. //读取文件内容
  2. Function ReadFile(Path)
  3. Dim fso, fileobj
  4. Set fso = CreateObject("Scripting.FileSystemObject")
  5. Set fileobj = fso.OpenTextFile(Path, 1, False)
  6. ReadFile = fileobj.ReadAll
  7. MsgBox ReadFile
  8. Call fileobj.Close()
  9. Set fso = Nothing
  10. Set fileobj = Nothing
  11. End Function


  12. //向文件写入内容
  13. Function WriteFile(Path, Text)
  14. Dim fso, fileobj
  15. Set fso = CreateObject("Scripting.FileSystemObject")
  16. Set fileobj = fso.OpenTextFile(Path, 2, True)
  17. Call fileobj.Write(Text)
  18. Call fileobj.Close()
  19. Set fso = Nothing
  20. Set fileobj = Nothing
  21. End Function
复制代码


遍历文件到列表框
 
核心代码
  1. //遍历文件夹的所有文件,并添加到列表框中
  2. Function ScanFile(Path)
  3. Dim fso, pathobj, fileobj
  4. Set fso = CreateObject("Scripting.FileSystemObject")
  5. Set pathobj = fso.GetFolder(Path)
  6. // 这里修改列表框的名字
  7. Form1.ListBox1.list = ""
  8. For Each fileobj In pathobj.Files
  9. Call Form1.ListBox1.AddItem(fileobj.Name)
  10. Next
  11. Set pathobj = Nothing
  12. Set fso = Nothing
  13. End Function
复制代码

上面的代码可以实现遍历某个文件夹下的所有文件,并把它们添加到列表框中,具体有什么实际作用呢,这可是个“仁者见仁、智者见智”的问题,小编就举个比较简单的用这个功能跟其他控件搭配实现批处理文件的功能

相关控件代码
  1. Function 获取当前所选内容(行号)
  2. 获取当前所选内容 = split(Form1.ListBox1.list,"|")(行号)
  3. End Function
  4. Event Form1.Button2.Click
  5. ScanFile Form1.BrowseBox1.Path
  6. End Event
  7. Event Form1.Button4.Click '删除选定文件
  8. 文件路径 = Form1.BrowseBox1.Path &"\"&获取当前所选内容(Form1.ListBox1.ListIndex)
  9. Form1.ListBox1.RemoveItem Form1.ListBox1.ListIndex
  10. MessageBox 文件路径&"该文件已删除"
  11. Call Plugin.File.DeleteFile(文件路径)
  12. End Event
  13. Event Form1.Button5.Click '重命名选定文件
  14. 文件路径 = Form1.BrowseBox1.Path &"\"&获取当前所选内容(Form1.ListBox1.ListIndex)
  15. Form1.ListBox1.RemoveItem Form1.ListBox1.ListIndex
  16. 新名称 = Form1.InputBox1.Text
  17. Call Plugin.File.ReNameFile(文件路径, Form1.BrowseBox1.Path & "\" & 新名称)
  18. MessageBox "该文件已重命名"& 新名称
  19. ScanFile Form1.BrowseBox1.Path
  20. End Event
复制代码
效果演示图
您所在的用户组无法下载或查看附件


如何循环找多图
 

由于按键自身的找图功能不像大漠等其他第三方插件那样,图片名字参数里可以直接写入多张图片一起查找,很多刚接触按键找图的新手基本都会问按键自身如何循环找多图或者找多图代码如何精简,小编最初学习的时候也遇到过类似的问题,当时看了某大神这篇帖子学到了很多

[backcolor=rgb(249, 249, 249)]建议没看过的童鞋都看看这篇帖子:【循环找图】教你如何循环找图,查找多图!【总结脚本】



 

谢谢大家阅读,记得给小编送支花花 ! 顺手点个


[tr=rgb(143, 188, 143)]

按键精灵安卓班(第一期)大肆招生啦~

回实战班:回合制通用教学火热报名

招生对象:零基础用户,快速学会按键精灵安卓版
招生人数:70人
【报名时间】:3/18——4/6
【学费】:128RMB
【学习日期】:1个月(2015.4.6-2015.4.27)
【上课时间】:周1、周3、周5 19:30--21:30
【上课导师】:梦幻小飞侠
【实战游戏】:[天天富翁]、[三国之刃]、[梦幻西游]、[天 龙 八 部]

本期重点:回合制游戏--神武
学习时效:终生有效
上课时间:周2、周4、周6的 20:00--22:00
导师:工程师07
技术支持:果儿(院刊编辑)
点我进入按键学院报名啦 招生细节进群咨询招生办主任:2群-372671254(优先加入) 1群-376122403



    已有5评分我要评分查看所有评分

    本主题由 超级版主 瑞祥幽冥狼 于 2022/1/28 17:46:41 执行 审核帖子 操作
    按键学院免费交流群:376122403

    按键学院招生计划
    按键学院系统教程
    2#

    不好了IP

    3#

    包括了包括了:文件检测、进程检测、内存检测、界面:文件检测、进程检测、内存检测、界面

    4#

    6666666666666

    5#

    211111111111111

    6#

    看看学习学习

    7#

    看看。。。。。。。。。

    8#

    哇哦 好像很酷的样子

    努力很久 还是一个屁
    9#

    学习。。。。。。。。。。

    10#

    学习了啊

    11#

    好好学习

    12886

    12#

    学习下

    13#

    赶紧来学习。

    14#

    小代码分享

    15#

    66666666

    16#

    哈哈哈哈哈哈

    发新话题 回复该主题