|
|
发表于 2026-4-10 22:40:30
|
显示全部楼层
浙江省温州市
这么多天过去了,相信楼主已经自行解决了。
这里再给一个简单的方案,直接读取 ym_core.sql ,把里面的内容放到数组里。
这样可以直接通过数组下标来访问,十万个号码,毫秒内完成处理:
| 窗口程序集名 | 保 留 | 保 留 | 备 注 | | 窗口程序集_启动窗口 | | | | | 变量名 | 类 型 | 数组 | 备 注 | | 表格 | 文本型 | 2000000 |
| 变量名 | 类 型 | 静态 | 数组 | 备 注 | | 文本 | 文本型 | | | | 数组 | 文本型 | | 0 | | 正则 | 正则表达式 | | | | 数 | 整数型 | | | | 搜索结果 | 搜索结果 | | | | 编号 | 整数型 | | | | 地址 | 文本型 | | | | 成员 | 文本型 | | | 内存分配加速优化 (真) 如果真 (文件是否存在 (“ym_core.sql”) = 假) 调试输出 (“当前目录下 ym_core.sql 不存在!”) 返回 ()文本 = UTF8到文本 (读入文件 (“ym_core.sql”))数组 = 分割文本 (文本, #换行符, ) 正则. 创建 (“VALUES \('.+?', '.+?', '(.+?)', '(.+?)', '(.+?)', '(.+?)'”, ) 计次循环首 (取数组成员数 (数组 ), 数 ) 成员 = 数组 [数 ] 搜索结果 = 正则. 搜索 (成员, 1, ) 如果真 (搜索结果. 是否为空 () = 假)  编号 = 到整数 (搜索结果. 取子匹配文本 (成员, 1, ))   地址 = 搜索结果. 取子匹配文本 (成员, 2, )  地址 = 地址 + “ ” + 搜索结果. 取子匹配文本 (成员, 3, )  地址 = 地址 + “ ” + 搜索结果. 取子匹配文本 (成员, 4, )  表格 [编号 ] = 地址   计次循环尾 ()数 = 到长整数 (号码 ) 如果真 (数 < 1 或 数 > 20000000000 ) 返回 (“”)数 = 到整数 (取文本左边 (号码, 7))返回 (表格 [数 ])| 变量名 | 类 型 | 静态 | 数组 | 备 注 | | 数 | 整数型 | | | | 号码 | 文本型 | | 100000 | | 文本 | 文本型 | | | | 无效号码 | 整数型 | | | | 时间 | 整数型 | | | 初始化 () 计次循环首 (取数组成员数 (号码 ), 数 ) 文本 = “1” + 到文本 (取随机数 (3, 9 ))  计次循环首 (9, )  文本 = 文本 + 到文本 (取随机数 (0, 9 ))  计次循环尾 () 号码 [数 ] = 文本 计次循环尾 () 时间 = 取启动时间 () 计次循环首 (取数组成员数 (号码 ), 数 ) 如果真 (获取地址 (号码 [数 ]) = “”)  无效号码 = 无效号码 + 1   计次循环尾 ()调试输出 (无效号码 )调试输出 (格式化文本 (“耗时: %.lf毫秒”, 取启动时间 () - 时间 ))
开始运行被调试程序
* 30155
* “耗时: 47毫秒”
被调试易程序运行完毕
注意,在上面的代码中,内存分配加速优化 这个模块非常关键,如果不使用,初始化过程会非常缓慢。
完整例子.zip
(4.14 MB, 下载次数: 2)
|
|