精易论坛

标题: 求助,易语言是否有这样的数据类型? [打印本页]

作者: wlsk888    时间: 6 天前
标题: 求助,易语言是否有这样的数据类型?
比如我有3000个数字,每个数字对应5个不相同的字符串
列如:字符串并没有那么规律,但绝对是不同的。
1:"aa1","ab2","ac3","ad4","ae5"
2:"aa2","ab3","ac4","ad5","ae6"
3:"aa3","ab4","ac5","ad6","ae7"
。。。
3000:"aa3001","ab3002","ac3003,"ad3004","ae3005"

我需要放入某个结构,然后可以按字符串快速cha询
比如
cha询"aa1",返回1,cha询"ab2",返回1
cha询"aa3",返回3,cha询"ac5",返回3
我看到有个节点结构,可以保存("aa1",1)("ab2",1)
但好像太麻烦了吧?一行就需要5个节点。。。
我现在是建立一个自定义包含5个文本的数组结构,来保存
.版本 2

.数据类型 对应结构
    .成员 aaa, 文本型
    .成员 bbb, 文本型
    .成员 ccc, 文本型
    .成员 ddd, 文本型
    .成员 eee, 文本型


初始化时,建立3000个对应结构数组,按顺序把字符串存入,然后cha询时循环1-3000,找到对应的字符串来返回序号。。。
好慢啊,大佬们帮帮忙?

作者: 笨来无一悟    时间: 6 天前
不需要任何自定义数据结构 直接文本型数组  循环查找文本在第几个数组 找到的位置除以5 这里用整除
  
子程序名返回值类型公开备 注
属于第几组整数型 
参数名类 型参考可空数组备 注
参_数组文本型
参_寻找文本型
变量名类 型静态数组备 注
计次整数型 
计次循环首 (取数组成员数 (参_数组), 计次)
如果真 (参_数组 [计次] = 参_寻找)
返回 (计次 \ 5 + 1)  ' 注意 这里是 \ 整除 而不是 / 除

计次循环尾 ()
返回 (0)  ' 没找到 返回0


作者: Ruang    时间: 6 天前
自定义数据类型
作者: wlsk888    时间: 6 天前
Ruang 发表于 2025-5-6 19:23
自定义数据类型

我已经自定义结构了啊,cha询还是要循环全部来比较字符串啊
作者: zainex    时间: 6 天前
用 节点 一个就够了,不需要多个:
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
变量名类 型静态数组备 注
节点节点 
整数型 
整数型 
文本文本型 
结果整数型 
目标文本型 
计次循环首 (3000, 数)
计次循环首 (5, 值)
文本 = 字符 (97)字符 (96 + 值)到文本 (数 + 值 - 1)
节点.加入属性 (文本, 数)
计次循环尾 ()
计次循环尾 ()
目标 = “ae7”
如果 (节点.取数值 (目标, 结果))
调试输出 (“不存在”)
调试输出 (结果)


i支持库列表   支持库注释   
EDataStructure数据结构支持库
spec特殊功能支持库


作者: haoren1212    时间: 6 天前
自定义数据类型或数据库表,你说的循环全部来比较字符串这个是不可避免的,通过自定义数据类型或数据库表都是通过匹配全部数据进行判断的,原理都是一样的无法避免
作者: 四叔    时间: 6 天前
用json得了
作者: 凌哥    时间: 6 天前
不可能慢啊,你怎么写的
作者: lufanjingyi    时间: 6 天前
你可以使用数据库   




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