递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
12
返回列表 发新帖
楼主: 凝固
打印 上一主题 下一主题

[视窗] 求助,易源码转视窗

[复制链接]

1

主题

29

帖子

230

积分

中级会员

Rank: 3Rank: 3

积分
230
11#
 楼主| 发表于 前天 23:38 | 只看该作者
本帖最后由 凝固 于 2025-10-16 23:45 编辑
weilai 发表于 2025-10-16 23:04
能不能把字典发出来

已发易语言源码了,里面有字典
回复

使用道具 举报

23

主题

422

帖子

3654

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3654
12#
发表于 昨天 00:06 | 只看该作者
凝固 发表于 2025-10-16 23:38
已发易语言源码了,里面有字典

感谢分享,我研究一下
回复

使用道具 举报

19

主题

186

帖子

2214

积分

金牌会员

Rank: 6Rank: 6

积分
2214
13#
发表于 昨天 00:32 | 只看该作者
凝固 发表于 2025-10-16 22:49
分享出来学习一下。刚玩火山,真的啥也不会;

字典从易源码中复制出来保存为"拼音字典1.txt"。 拼音字典1.rar (53.05 KB, 下载次数: 2) 做了三个版本:哈希表、无序哈希表、对象数组。
  1. <火山程序 类型 = "通常" 版本 = 1 />

  2. 类 取拼音001 <公开 折叠>
  3. {
  4.     方法 对比测试 <公开 类型 = 文本型>
  5.     参数 文本内容 <类型 = 文本型 @默认值 = "嘻嘻哈哈7799闇龍..?">
  6.     {
  7.         变量 xj <类型 = 计算耗时类>
  8.         变量 t <类型 = 文本型>
  9.         变量 tt <类型 = 文本型>
  10.         xj.重新计时 ()
  11.         t = 取拼音_快速0 (文本内容, 假, "|")
  12.         调试输出 (t)
  13.         tt = tt + " (哈希表 首次:" + xj.取耗时文本 (真, -1, , , )
  14.         计次循环 (100000)
  15.         {
  16.             取拼音_快速0 (文本内容, 假, "|")
  17.         }
  18.         tt = tt + ">10W次:" + xj.取耗时文本 (真, -1, , , ) + ")"
  19.         // 本对象.标题 = tt
  20.         调试输出 (tt)

  21.         xj.重新计时 ()
  22.         t = 取拼音_快速1 (文本内容, 假, "|")
  23.         调试输出 (t)
  24.         tt = tt + " (无序哈希表 首次:" + xj.取耗时文本 (真, -1, , , )
  25.         计次循环 (100000)  // 60毫秒
  26.         {
  27.             取拼音_快速1 (文本内容, 假, "|")
  28.         }
  29.         tt = tt + ">>10W次:" + xj.取耗时文本 (真, -1, , , ) + ")"
  30.         // 本对象.标题 = tt
  31.         调试输出 (tt)

  32.         xj.重新计时 ()
  33.         t = 取拼音_快速2 (文本内容, 假, "|")
  34.         调试输出 (t)
  35.         tt = tt + " (对象数组 首次:" + xj.取耗时文本 (真, -1, , , )
  36.         计次循环 (100000)  // 60毫秒
  37.         {
  38.             取拼音_快速2 (文本内容, 假, "|")
  39.         }
  40.         tt = tt + ">>>10W次:" + xj.取耗时文本 (真, -1, , , ) + ")"
  41.         // 本对象.标题 = tt
  42.         调试输出 (tt)
  43.         返回 (tt)
  44.     }

  45.     常量 拼音字典 <类型 = 视窗文件资源 值 = "拼音字典1.txt">

  46.     变量 全局_拼音二维数组_初始化0 <类型 = 逻辑型 值 = 假 注释 = "哈希表">
  47.     变量 全局_拼音二维数组_初始化1 <类型 = 逻辑型 值 = 假 注释 = "无序哈希表">
  48.     变量 全局_拼音二维数组_初始化2 <类型 = 逻辑型 值 = 假 注释 = "对象数组">
  49.     变量 全局_拼音二维数组0 <类型 = 字符到文本哈希表 注释 = "哈希表">
  50.     变量 全局_拼音二维数组1 <类型 = 字符到文本无序哈希表 注释 = "无序哈希表">
  51.     变量 全局_拼音二维数组2 <类型 = 字符与拼音_数组 注释 = "对象数组">

  52.     方法 取拼音_数组_初始化0 <注释 = "哈希表">
  53.     {
  54.         变量 拼音_数组 <类型 = 文本数组类>
  55.         变量 首字符 <类型 = 字符>
  56.         变量 文本内容 <类型 = 文本型>
  57.         变量 j <类型 = 字节集类>
  58.         全局_拼音二维数组0.清空 ()
  59.         全局_拼音二维数组_初始化0 = 真
  60.         如果 (文件资源到字节集 (拼音字典, j) == 真)
  61.         {
  62.             文本内容 = 多字节到文本 (j)
  63.             如果 (分割文本 (文本内容, ",", 拼音_数组, 真, 真) > 0)
  64.             {
  65.                 拼音_数组.枚举循环 ()
  66.                 {
  67.                     文本内容 = 拼音_数组.取枚举值 ()
  68.                     如果 (取文本长度 (文本内容) > 1)
  69.                     {
  70.                         首字符 = 取字符 (文本内容, 0)
  71.                         全局_拼音二维数组0.插入 (首字符, 取文本右边 (文本内容, 取文本长度 (文本内容) - 1))
  72.                     }
  73.                 }
  74.             }
  75.         }
  76.     }

  77.     方法 取拼音_快速0 <公开 类型 = 文本型 注释 = "哈希表">
  78.     参数 文本 <类型 = 文本型 注释 = "欲取拼音的文本">
  79.     参数 保留非汉字 <类型 = 逻辑型 注释 = "默认假,如果某个字符在字典中不存在,则不输出该字符;如果为真则保留。" @默认值 = 假>
  80.     参数 分隔符 <类型 = 文本型 注释 = "默认用空格分割" @默认值 = " ">
  81.     {
  82.         变量 i <类型 = 整数 注释 = "下标">
  83.         变量 当前字符 <类型 = 字符>
  84.         变量 返回值 <类型 = 文本型>
  85.         如果 (全局_拼音二维数组_初始化0 == 假)
  86.         {
  87.             取拼音_数组_初始化0 ()
  88.         }
  89.         如果 (文本是否为空 (分隔符) == 真)
  90.         {
  91.             分隔符 = " "
  92.         }
  93.         返回值 = ""
  94.         i = 取文本长度 (文本)
  95.         计次循环 (i)
  96.         {
  97.             当前字符 = 取字符 (文本, 取循环索引 ())
  98.             如果 (全局_拼音二维数组0.是否存在 (当前字符) == 真)
  99.             {
  100.                 加入文本 (返回值, 全局_拼音二维数组0.取值 (当前字符))
  101.                 加入文本 (返回值, 分隔符)
  102.             }
  103.             否则 (当前字符 == 13 || 当前字符 == 10)
  104.             {
  105.                 加入字符 (返回值, 当前字符)
  106.             }
  107.             否则 (保留非汉字 == 真)
  108.             {
  109.                 加入字符 (返回值, 当前字符)
  110.                 加入文本 (返回值, 分隔符)
  111.             }
  112.             否则
  113.             {
  114.                 // 加入文本 (返回值, 分隔符)
  115.             }
  116.         }
  117.         删自身尾空 (返回值)
  118.         返回 (返回值)
  119.     }

  120.     方法 取拼音_数组_初始化1 <注释 = "无序哈希表" 折叠>
  121.     {
  122.         变量 拼音_数组 <类型 = 文本数组类>
  123.         变量 首字符 <类型 = 字符>
  124.         变量 文本内容 <类型 = 文本型>
  125.         变量 j <类型 = 字节集类>
  126.         全局_拼音二维数组1.清空 ()
  127.         全局_拼音二维数组_初始化1 = 真
  128.         如果 (文件资源到字节集 (拼音字典, j) == 真)
  129.         {
  130.             文本内容 = 多字节到文本 (j)
  131.             如果 (分割文本 (文本内容, ",", 拼音_数组, 真, 真) > 0)
  132.             {
  133.                 拼音_数组.枚举循环 ()
  134.                 {
  135.                     文本内容 = 拼音_数组.取枚举值 ()
  136.                     如果 (取文本长度 (文本内容) > 1)
  137.                     {
  138.                         首字符 = 取字符 (文本内容, 0)
  139.                         全局_拼音二维数组1.插入 (首字符, 取文本右边 (文本内容, 取文本长度 (文本内容) - 1))
  140.                     }
  141.                 }
  142.             }
  143.         }
  144.     }

  145.     方法 取拼音_快速1 <公开 类型 = 文本型 注释 = "无序哈希表">
  146.     参数 文本 <类型 = 文本型 注释 = "欲取拼音的文本" 折叠>
  147.     参数 保留非汉字 <类型 = 逻辑型 注释 = "默认假,如果某个字符在字典中不存在,则不输出该字符;如果为真则保留。" @默认值 = 假>
  148.     参数 分隔符 <类型 = 文本型 注释 = "默认用空格分割" @默认值 = " ">
  149.     {
  150.         变量 i <类型 = 整数 注释 = "下标">
  151.         变量 当前字符 <类型 = 字符>
  152.         变量 返回值 <类型 = 文本型>
  153.         如果 (全局_拼音二维数组_初始化1 == 假)
  154.         {
  155.             取拼音_数组_初始化1 ()
  156.         }
  157.         如果 (文本是否为空 (分隔符) == 真)
  158.         {
  159.             分隔符 = " "
  160.         }
  161.         返回值 = ""
  162.         i = 取文本长度 (文本)
  163.         计次循环 (i)
  164.         {
  165.             当前字符 = 取字符 (文本, 取循环索引 ())
  166.             如果 (全局_拼音二维数组1.是否存在 (当前字符) == 真)
  167.             {
  168.                 加入文本 (返回值, 全局_拼音二维数组1.取值 (当前字符))
  169.                 加入文本 (返回值, 分隔符)
  170.             }
  171.             否则 (当前字符 == 13 || 当前字符 == 10)
  172.             {
  173.                 加入字符 (返回值, 当前字符)
  174.             }
  175.             否则 (保留非汉字 == 真)
  176.             {
  177.                 加入字符 (返回值, 当前字符)
  178.                 加入文本 (返回值, 分隔符)
  179.             }
  180.             否则
  181.             {
  182.                 // 加入文本 (返回值, 分隔符)
  183.             }
  184.         }
  185.         删自身尾空 (返回值)
  186.         返回 (返回值)
  187.     }

  188.     方法 取拼音_数组_初始化2 <注释 = "对象数组" 折叠>
  189.     {
  190.         变量 拼音_数组 <类型 = 文本数组类>
  191.         变量 首字符 <类型 = 字符>
  192.         变量 文本内容 <类型 = 文本型>
  193.         变量 j <类型 = 字节集类>
  194.         // 全局_拼音二维数组.清空 ()
  195.         全局_拼音二维数组2.删除所有成员 ()
  196.         全局_拼音二维数组_初始化2 = 真
  197.         如果 (文件资源到字节集 (拼音字典, j) == 真)
  198.         {
  199.             全局_拼音二维数组2.批量加入新成员 (字符与拼音, 65536)
  200.             // 计次循环 (65536)
  201.             {
  202.                 // 首字符 = (字符)取循环索引 ()
  203.                 // 文本内容 = ""
  204.                 // 文本内容 = 加入字符 (首字符)
  205.                 // 全局_拼音二维数组.加入成员 (文本内容)
  206.             }
  207.             文本内容 = 多字节到文本 (j)
  208.             如果 (分割文本 (文本内容, ",", 拼音_数组, 真, 真) > 0)
  209.             {
  210.                 拼音_数组.枚举循环 ()
  211.                 {
  212.                     文本内容 = 拼音_数组.取枚举值 ()
  213.                     如果 (取文本长度 (文本内容) > 1)
  214.                     {
  215.                         首字符 = 取字符 (文本内容, 0)
  216.                         // 全局_拼音二维数组.插入 (首字符, 取文本右边 (文本内容, 取文本长度 (文本内容) - 1))
  217.                         全局_拼音二维数组2.取成员 ((整数)首字符).是否有效 = 真
  218.                         全局_拼音二维数组2.取成员 ((整数)首字符).拼音文本 = 取文本右边 (文本内容, 取文本长度 (文本内容) - 1)
  219.                     }
  220.                 }
  221.             }
  222.         }
  223.     }

  224.     方法 取拼音_快速2 <公开 类型 = 文本型 注释 = "对象数组" 折叠>
  225.     参数 文本 <类型 = 文本型 注释 = "欲取拼音的文本">
  226.     参数 保留非汉字 <类型 = 逻辑型 注释 = "默认假,如果某个字符在字典中不存在,则不输出该字符;如果为真则保留。" @默认值 = 假>
  227.     参数 分隔符 <类型 = 文本型 注释 = "默认用空格分割" @默认值 = " ">
  228.     {
  229.         变量 i <类型 = 整数 注释 = "下标">
  230.         变量 当前字符 <类型 = 字符>
  231.         变量 返回值 <类型 = 文本型>
  232.         如果 (全局_拼音二维数组_初始化2 == 假)
  233.         {
  234.             取拼音_数组_初始化2 ()
  235.         }
  236.         如果 (文本是否为空 (分隔符) == 真)
  237.         {
  238.             分隔符 = " "
  239.         }
  240.         返回值 = ""
  241.         i = 取文本长度 (文本)
  242.         计次循环 (i)
  243.         {
  244.             当前字符 = 取字符 (文本, 取循环索引 ())
  245.             如果 (全局_拼音二维数组2.取成员 ((整数)当前字符).是否有效 == 真)  // 全局_拼音二维数组.是否存在 (当前字符) == 真)
  246.             {
  247.                 加入文本 (返回值, 全局_拼音二维数组2.取成员 ((整数)当前字符).拼音文本)
  248.                 // 加入文本 (返回值, 全局_拼音二维数组.取值 (当前字符))
  249.                 加入文本 (返回值, 分隔符)
  250.             }
  251.             否则 (当前字符 == 13 || 当前字符 == 10)
  252.             {
  253.                 加入字符 (返回值, 当前字符)
  254.             }
  255.             否则 (保留非汉字 == 真)
  256.             {
  257.                 加入字符 (返回值, 当前字符)
  258.                 加入文本 (返回值, 分隔符)
  259.             }
  260.             否则
  261.             {
  262.                 // 加入文本 (返回值, 分隔符)
  263.             }
  264.         }
  265.         删自身尾空 (返回值)
  266.         返回 (返回值)
  267.     }
  268. }

  269. 类 字符到文本无序哈希表 <公开 基础类 = 基本无序哈希表模板类 @模板实现类 = "字符,文本型">

  270. 类 字符到文本哈希表 <公开 基础类 = 通用哈希表模板类 @模板实现类 = "字符,文本型">

  271. 类 字符与拼音_数组 <基础类 = 对象数组模板类 @模板实现类 = "字符与拼音">

  272. 类 字符与拼音 <折叠>
  273. {
  274.     变量 是否有效 <公开 类型 = 逻辑型 值 = 假>
  275.     变量 字符值 <公开 类型 = 字符 值 = 0>
  276.     变量 拼音文本 <公开 类型 = 文本型 值 = "">
  277. }
复制代码




回复

使用道具 举报

23

主题

422

帖子

3654

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3654
14#
发表于 昨天 02:23 | 只看该作者
凝固 发表于 2025-10-16 23:38
已发易语言源码了,里面有字典

取拼音.rar (100.01 KB, 下载次数: 5)

测试了下,十万次几十毫秒,最主要是载入词库超快,0毫秒就能载入
回复

使用道具 举报

62

主题

592

帖子

4372

积分

贵宾

火山官方交流群:831858564

Rank: 9Rank: 9Rank: 9

积分
4372
QQ
15#
发表于 昨天 07:28 | 只看该作者
凝固 发表于 2025-10-16 23:36
大佬,缺方法啊。

, 17: 错误: 没有找到所指定的方法名称"编码_Unicode到Utf8"

文本到UTF8...UTF8到文本..就这些
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2025-10-18 01:25 , Processed in 0.098739 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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