设为首页收藏本站CRC32解密2.0CDN刷新更改用户名领夜猫子 本站已运行
搜索
查看: 259|回复: 4
收起左侧

【ide利器】中文字母数字混拼搜索

[复制链接]
发表于 2018-3-11 00:02:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?加入我们

x
今天在写一个仓库管理的软件,把混拼搜索写了。因为易语言的自带提示很坑*,多年积累的怨言,现在凑巧写了个混拼的,比你想象中要强大。(呃,广告词,其实并没有怎么考虑各种突发情况的效率,但功能是有的,一般的效率也是有的,大神有机会帮忙看看有没有啥问题,或者提提怎么写更好)
下面的图片不是特意截得,只是跟朋友说的时候,随手截给他看的。因为我不是主要在写混搜...懒得再截了
先放易语言让我不爽的,貌似只支持纯首拼或双拼..
(单纯的只是不爽,接下来的行动对这个不爽并没啥改变)
TIM图片20180310234438.png
TIM图片20180310234442.png
。。。。。单拼不能接双拼...
TIM图片20180310234446.png
TIM图片20180310234454.png
先不说必须输入_好麻烦,尤其是在中文环境需要切换输入法,当然,据说可以宏定义键盘


这忍了。


但是......双拼完之后不允许首拼...
TIM图片20180310234503.png
我这么长的怎么输...前缀还一样一样的

所以我想支持拼音混合,容许遗漏,模糊搜索


这个用来选择的时候有奇效


比如仓库里有两百多件不同名字的材料。


。。。。。。以上都是节选自聊天记录,懒得打字
忽略分析过程了..总之就是准备提取出两串拼音来顺序匹配,加上数字和字母,忽略其他符号
TIM图片20180310235134.png
大概就是这样。
写出来之后给朋友的截图是
TIM图片20180310233725.png
TIM图片20180310233743.png
TIM图片20180310233747.png
TIM图片20180310233755.png
就这样咯...

  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
数组文本型0 

子程序名返回值类型公开备 注
_编辑框_搜索内容_内容被改变  
变量名类 型静态数组备 注
i整数型  
文本文本型  
搜索文本拼音文本型  
原串拼音文本型  
原长整数型  
搜索位置整数型  
临时数组文本型 0
编辑框_搜索结果.内容 = “”
如果真 (编辑框_搜索内容.内容 ≠ “”)
搜索文本拼音 = 取文本拼音 (编辑框_搜索内容.内容)
原长 = 取文本长度 (搜索文本拼音)
如果真 (原长 = 0)
返回 ()
计次循环首 (取数组成员数 (数组), i)
原串拼音 = 取文本拼音 (数组 [i])
如果真 (取文本长度 (原串拼音) ≥ 原长 原长 > 0 顺序是否匹配 (原串拼音, 搜索文本拼音))
文本 = 文本 + 数组 [i]#换行符

计次循环尾 ()
编辑框_搜索结果.内容 = 文本
子程序名返回值类型公开备 注
顺序是否匹配逻辑型 
参数名类 型参考可空数组备 注
原字符串文本型   
新字符串文本型   
变量名类 型静态数组备 注
寻找位置整数型  
' 调试输出 (原字符串, 新字符串)
如果真 (新字符串 = “”)
' 调试输出 (原字符串, “ok”)
返回 ()
寻找位置 = 寻找文本 (原字符串, 取文本左边 (新字符串, 1), , )
如果真 (寻找位置 ≠ -1)
返回 (顺序是否匹配 (取文本右边 (原字符串, 取文本长度 (原字符串) - 寻找位置), 取文本右边 (新字符串, 取文本长度 (新字符串) - 1)))
返回 ()
子程序名返回值类型公开备 注
取文本拼音文本型 
参数名类 型参考可空数组备 注
文本文本型   
变量名类 型静态数组备 注
文本数组文本型 0
i整数型  
拼音文本型  
功能_逐字分割 (文本, 文本数组)
' 调试输出 (文本数组)
计次循环首 (取数组成员数 (文本数组), i)
拼音 = 拼音 + 选择 (判断单字符是否字母数字 (文本数组 [i]), 文本数组 [i], 取拼音 (文本数组 [i], 1))
计次循环尾 ()
返回 (拼音)
子程序名返回值类型公开备 注
判断单字符是否字母数字逻辑型 
参数名类 型参考可空数组备 注
字符文本型   
变量名类 型静态数组备 注
ascii整数型  
ascii = 取代码 (字符, )
判断 (ascii ≥ 65 ascii ≤ 90)  ' A-Z

判断 (ascii ≥ 97 ascii ≤ 122)  ' a-z
判断 (ascii ≥ 48 ascii ≤ 57)  ' 0=48,9=57

返回 ()
返回 ()
子程序名返回值类型公开备 注
功能_逐字分割  
参数名类 型参考可空数组备 注
文本文本型   
wb数组文本型  存放分割后的文本
变量名类 型静态数组备 注
Buf文本型  
数据字节集  
数据 = { 87, 139, 124, 36, 16, 51, 192, 51, 201, 56, 7, 116, 54, 86, 139, 116, 36, 24, 138, 20, 56, 128, 250, 127, 118, 9, 136, 20, 49, 131, 192, 1, 131, 193, 1, 138, 20, 56, 136, 20, 49, 131, 193, 1, 198, 4, 49, 32, 131, 192, 1, 131, 193, 1, 128, 60, 56, 0, 117, 214, 198, 4, 49, 0, 94, 95, 195, 139, 84, 36, 20, 136, 4, 17, 95 }
Buf = 取空白文本 (取文本长度 (文本) × 2)
CallWindowProcA (数据, _启动窗口.取窗口句柄 (), 1025, 文本, Buf)
wb数组 = 分割文本 (Buf, “ ”, )
子程序名返回值类型公开备 注
_编辑框_文本池_内容被改变  
数组 = 分割文本 (编辑框_文本池.内容, #换行符, )
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
数组 = 分割文本 (编辑框_文本池.内容, #换行符, )
  
DLL命令名返回值类型公开备 注
CallWindowProcA整数型 转载自网上,用于逐字分割
DLL库文件名:
user32.dll
在DLL库中对应命令名:
CallWindowProcA
参数名类 型传址数组备 注
字节集字节集  
窗口句柄整数型  
消息类型整数型  
文本文本型  
buf文本型  

  1. 中国
  2. 易语言
  3. 汉字
  4. 程序
  5. 数据类型
  6. 成员
  7. 程序集
  8. 子程序
  9. 参数
  10. 子程序参数
  11. 变量
  12. 程序集变量
  13. 全局变量
  14. 常量
  15. 资源
  16. 图片
  17. 声音
  18. 字节
  19. 短整数
  20. 整数
  21. 长整数
  22. 小数
  23. 双精度小数
  24. 数值
  25. 逻辑值
  26. 日期时间
  27. 文本
  28. 字节集
  29. 指针
  30. 子程序指针
  31. 系统
  32. 数据集
  33. 窗口
  34. 窗口组件
  35. 报表
  36. 报表组件
  37. 字体
  38. 文件
  39. 目录
  40. 属性
  41. 事件
  42. 尺寸
  43. 名称
  44. 坐标
  45. 宽度
  46. 高度
  47. 标签
  48. 标题
  49. 边框
  50. 颜色
  51. 音乐
  52. 图标
  53. 位置
  54. 帮助
  55. 信息
  56. 计数
  57. 计次
  58. 计算
  59. 计算机
  60. 电脑
  61. 数目
  62. 文件号
  63. 字段
  64. 数据库
  65. 索引
  66. fdajklfjakl
  67. fad
  68. fadf‘发【】43
  69. fadsf34
  70. 【】456
  71. 测试中文89345
  72. 测试345见了美女#¥%混合
  73. 我是用来测试用的文本没错我就是用来测试用的文本
  74. 我是用来测试用的文本没错我就是用来测试用的文
  75. 我是用来测试用的文本没错我就是用来测试用的
  76. 我是用来测试用的文本没错我就是用来测试用
  77. 我是用来测试用的文本没错我就是用来测试
  78. 我是用来测试用的文本没错我就是用来测
  79. 我是用来测试用的文本没错我就是用来
  80. 我是用来测试用的文本没错我就是用
  81. 我是用来测试用的文本没错我就是
  82. 我是用来测试用的文本没错我就
  83. 我是用来测试用的文本没错我
  84. 我是用来测试用的文本没错
  85. 我是用来测试用的文本没
  86. 我是用来测试用的文本
  87. 我是用来测试用的文
  88. 我是用来测试用的
  89. 我是用来测试用
  90. 我是用来测试
  91. 我是用来测
  92. 我是用来
  93. 我是用
  94. 我是
复制代码
上面这段文本是编辑框_文本池的。

==================混乱分割线
需要的朋友直接下载下面的附件吧。
混拼搜索.rar (3.19 KB, 下载次数: 5)

评分

参与人数 1位币 +66 收起 理由
Cute + 66 神马都是浮云

查看全部评分

回复

使用道具 举报

腾讯云数据库性能卓越稳定可靠,为您解决数据库运维难题
发表于 2018-3-11 08:03:23 | 显示全部楼层
看来用这玩意发明一套输入法啥的问题还真不少{:1_9:}
回复 支持 反对

使用道具 举报

发表于 2018-3-11 21:46:07 | 显示全部楼层
本小白看不动
回复 支持 反对

使用道具 举报

发表于 2018-3-13 16:18:27 | 显示全部楼层
没错这玩意也是输入法的一部分。
回复 支持 反对

使用道具 举报

发表于 2018-3-27 17:22:47 | 显示全部楼层

巧了,我也是{:1_9:}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

关闭

社区活动上一条 /1 下一条

小黑屋|手机版|Archiver|官方QQ群|从F到0 ( 蒙ICP备17002595号-1 )  

蒙公网安备 15010402000325号 腾讯云安全认证

GMT+8, 2018-12-16 00:19 , Processed in 0.153262 second(s), 34 queries .

Powered by Discuz! X3.4 © 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表