精易论坛

标题: 易语言模拟哈希,实现文本按关键词分类 [打印本页]

作者: 御风软件    时间: 2016-9-30 15:38
标题: 易语言模拟哈希,实现文本按关键词分类
这个,同样是回答一个易友的问题写的,代码有点多,也有点意义,也分享下。
一段文本:
111,abc
222,abc
333,abc
444,def
555,def

以逗号后面为关键词分类(abc,def)

分类后分别输出,如下:
输出A:
111,abc
222,abc
333,abc
输出B:
444,def
555,def
其实用哈希,实现更容易,而且效率更高
下面的代码,是我利用纯核心库写的,模拟哈希
在数据量不大的时候,应该是可以用于工作场景的

如果效率不够了,可以使用 哈希表支持库,还有快速文本对象操作。
  
子程序名返回值类型公开备 注
文本分类  
参数名类 型参考可空数组备 注
操作文本文本型
变量名类 型静态数组备 注
N1整数型 
N2整数型 
文本数组文本型0
一行文本文本型2
哈希数组文本型0
目标数组文本型0
存在分类逻辑型 
分类索引整数型 
文本数组 = 分割文本 (操作文本, #换行符, )
计次循环首 (取数组成员数 (文本数组), N1)
一行文本 = 分割文本 (文本数组 [N1], “,”, 2)
如果真 (取数组成员数 (一行文本) = 2)
存在分类 = 假
计次循环首 (取数组成员数 (哈希数组), N2)
如果真 (哈希数组 [N2] = 一行文本 [2])
分类索引 = N2
存在分类 = 真
跳出循环 ()

计次循环尾 ()
如果真 (存在分类 = )
加入成员 (目标数组, “”)
加入成员 (哈希数组, 一行文本 [2])
分类索引 = 取数组成员数 (哈希数组)
目标数组 [分类索引] = 目标数组 [分类索引]“,” + 一行文本 [1]

计次循环尾 ()
计次循环首 (取数组成员数 (目标数组), N1)
目标数组 [N1]取文本右边 (目标数组 [N1], 取文本长度 (目标数组 [N1]) - 1)
计次循环尾 ()
' 上面代码实现了关键词和数据分别存一个数组,索引相同,下面为输出效果代码
计次循环首 (取数组成员数 (哈希数组), N1)
文本数组 = 分割文本 (目标数组 [N1], “,”, )
计次循环首 (取数组成员数 (文本数组), N2)
输出调试文本 (文本数组 [N2]“,” + 哈希数组 [N1])
计次循环尾 ()
计次循环尾 ()

注释后面的,都可以自己删除/修改,然后返回自己需要的东西。

作者: 红颜脸庞仍娇俏    时间: 2016-9-30 15:44
这玩意怎么说呢,会改别人代码的,自己应该也会写,不会改的拿到手里也用不了
作者: 2446789312    时间: 2016-9-30 17:02
不明白什么意思
作者: hkfox    时间: 2016-10-1 18:16
感谢分享…………

作者: renchin10025    时间: 2016-10-2 20:41
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4