学习AutohotkH V2:生成 QuickSearch 可用的数据文件

用ahk和自定义码表生成 QuickSearch Extend 可用的数据文件

很多人开始转V2版本了,群里几位大神也开发了 VSCode 插件。我试着几天,确实语法更舒服一点,强烈建议大家使用。

QuickSearch Extended 是文件管理器 Total Commander 的一个插件,因为名字打完标题会换行,我不喜欢,所以标题只打了插件一半的名字。

这个插件支持用拼音首字母快速搜索文件,可以说是 TC 用户最喜欢的插件。但是,中文用户还有很多是用五笔、双拼等输入法的,拼音首字母不一定是最顺手的。这个脚本可以把文本格式的码表文件转换成 QuickSearch Extended 可用的 tbl 数据文件。让 QuickSearch Extended 支持五笔首字母搜索、双拼首字母搜索等。

 

为提高论坛活跃度,已编译文件及码表示例支付积分后查看

  1. ; AHK VSERION: AutohotkeyH v2 W32
  2. ; Author: fwt
  3. ; Description: 生成tc插件 QuickSearch eXtended 可用的码表文件
  4. SelectedFile := FileSelect(3, A_ScriptDir, "请选择码表文件", "*.txt")
  5. if SelectedFile = ""
  6. ExitApp
  7. SplitPath(SelectedFile, , dir)
  8. content := RTrim(FileRead(SelectedFile), "`n")
  9. pytable := Map()
  10. pytable.Capacity := 0x9FA5 - 0x4E00 + 1
  11. buf := BufferAlloc((0x9FA5 - 0x4E00 + 1) * 2)
  12. for l in StrSplit(content, "`n")
  13. {
  14. if l ~= "^#|^s*$"
  15. Continue
  16. m := StrSplit(l, A_Tab, "", 2)
  17. zi := m[2]
  18. hex := ord(zi)
  19. if hex > 0x9FA5 || hex < 0x4E00
  20. Continue
  21. num := ord(m[1]) & 95 - 64
  22. offset := (hex - 0x4E00) * 2
  23. if pytable.Has(zi)
  24. {
  25. arr := pytable[zi]
  26. if arr.Length < 3 && !inArray(arr, num)
  27. {
  28. arr.push(num)
  29. num += NumGet(buf, offset, "UShort") << 5
  30. }
  31. }
  32. else
  33. {
  34. pytable[zi] := [num]
  35. }
  36. NumPut("UShort", num, buf, offset)
  37. }
  38. outfile := dir "tcmatch.tbl"
  39. file := FileOpen(outfile, "w")
  40. file.RawWrite(Buf)
  41. file.close()
  42. Run("Explorer /Select," outfile)
  43. inArray(arr, num)
  44. {
  45. for i in arr
  46. if i = num
  47. return True
  48. return False
  49. }

 

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
其他教程

控件提示

2021-3-3 5:21:39

其他案例

KMCounter v3.7 | 使用热力图显示鼠标与键盘使用情况的工具

2021-3-12 21:25:12

2 条回复 A文章作者 M管理员
欢迎您,新朋友,感谢参与互动!
  1. 木之本末

    let me cc

  2. user12121

    学习一下

个人中心
购物车
优惠劵
私信列表
搜索