YYDS存取键值表 支持库 含最强映射中心 增强模块易语言源码
项目说明
E2EE的存取键值表用习惯了挺方便,就是支持库太大了,随便编译个文件都要接近10M,然后有些小bug没修复,所以就想着写一个
核心功能
99%的还原存取键值表和存取列表的功能,并且部分功能更快更方便。 基于YYJSON,速度跟E2EE差不多,有快有慢,建议编译后测试,还想再快可以用那个内存加速模块,挺有用,和这个不冲突。
最强的映射中心,完整支持任意自定义数据类型、自定义数据类型数组到Json的互转。
支持数据验证器,支持YYDS增强模块。
支持各种通用型创建和置值。
完善的常量参数。

如果要测试速度,最好编译后测试,速度差很大!
本支持库主要是替代E2EE的存取表功能,不会增加服务器方面的内容。
时间有限,还可以仿E2EE的数据库写相关的操作,参考CCHTTP

如果出现以下类似冲突:
LIBC.lib(crt0dat.obj) : error LNK2005: __cinit already defined in libcmt.lib
解决办法:在易语言安装目录 C:Program Files (x86)e ools 下打开link.ini文件在尾部增加下面一行
extra_args=/NODEFAULTLIB:LIBC.LIB

3.0.1
* 修复上个版本优化导致的新问题,主要是映射相关
* 修复键值表从Json载入失败后置值失败的问题
3.0.0大更新
* 优化了几乎所有命令,大幅提高调用的速度至10-100倍,提高兼容性
* 键值表:
1. 置值/置整数等 添加额外参数:直接添加,默认假,只对路径是单层路径非多层路径生效,如果真加则不判断是否存在该路径直接添加,可极大提高速度
2. 子列表排序新增参数:排序算法,支持#存取排序算法_选择排序梳排序_和#存取排序算法_快速排序_
* 列表:
1. 取文本/取整数等实现了无限参数,可通过列表.取文本(1,”a”,2)这样的方式获取”//[1].a[2]”,优化对路径是索引整数的取值
2. 排序新增参数:排序算法,支持#存取排序算法_选择排序梳排序_和#存取排序算法_快速排序_

2.9.5
* 重写排序部分,排序速度提高100倍
* 列表.去重复,参数明确为:参数1:目标路径;参数2:目标键名,可对指定路径下的列表去重,也可以指定目标键名,对相同值的键值表去重
* 修正YYDS_置路径方式
* 给命令加了说明
* 新增命令:键值表/列表.释放内存,用于当键值表/列表作为集变量或全局变量时,对它进行的某些操作不会立刻释放内存,可用一个定时器来定时清除,非线程安全(yyjson特性)
2.9.2
* 优化对CSV格式的文件支持,支持命令打开文件/保存文件/从文件载入/另存文件,新增命令:到CSV
* 修复引用键值表的一个bug
* 对打开文件/保存文件/从文件载入/另存文件设立全局许可证,避免出现同时读取写入的情况
* 修复2.9,2.9.1新增功能导致的崩溃
2.9.1
* 列表.取引用键值表,路径改为通用型,支持索引
2.9
* 优化列表排序:允许不存在目标主键的键值表排序‘排序顺序优化,不同类型的会自动排序
* 键值表
1.打开文件保存文件优化:加入参数说明;支持原始为base64格式的文件保存
2.新增额外命令:
a.键值表.添加值/整数/文本等,可快速给内部列表添加值
b.键值表.取引用列表,对本命令获取到的列表的操作将直接同步给原键值表
* 列表
1.打开文件保存文件优化:加入参数说明;支持原始为base64格式的文件保存,支持打开csv格式的文件
2.新增额外命令:
a.列表.取引用键值表,对本命令获取到的列表的操作将直接同步给原列表
2.8.3
* 优化数据验证器对win7的运行,另外注意:数据验证器YZC不建议放局部变量来重复运行,有内存泄漏风险
2.8.2
* 完善数据验证器,支持所有验证规则,提供一个测试工具。
2.8.1
* 新增对带Bom的Utf-8格式文件的支持
* 存取列表.到json,首参数提供默认参数假
2.8
* 新增数据验证器YZC_,未支持完整功能,用于YYDS增强模块
* 存取列表新增:从csv载入、从文本分割
* 修复创建文本_的bug
* 新增YYDS增强模块,功能和E2EE增强模块基本一致,去除了数据库操作等内容

2.6
* 支持库更名为YYDS存取键值表
* 内部部分改为汇编代码,提高映射效率15%
2.51
* 优化映射中心,新增5层嵌套例子,修复内存泄漏

2.5
* 完全开放映射中心,支持多层嵌套,嵌套自定义类型数组,随便怎么套都可以
* 映射_列表_转自定义数组 使用前最好手动重定义目标数组为0
* 超复杂的嵌套数组类型可能轻微内存增加
2.1
* 修复内部Utf-8编码问题
2.0
* 修复存取列表打开utf-8文件时读取错误,键值表没有问题。另修改当源文件不存在,会保存当前路径,用于保存文件的时候直接保存。
* 新增映射中心,支持多层嵌套使用,只需要先使用映射_初始化,直接传入数据类型的易代码即可。可将自定义数据类型的数据/数组数据 和 键值表或存取列表 互转。注意:目前列表转自定义数组和键值表转自定义不支持多线程内使用。

1.51-1.52
* 修复取键值表失败后直接对存取对象赋值失败的bug
1.5
* 新增创建文本_、创建时间从文本_、创建CRC_、HEX编码_、HEX解码_ 同E2EE
* 修复置键值表的bug

1.45
修复部分问题
1.4
已更新1.4
重写内部类,编译后内存无溢出(包括多线程),只有调试下有几个会轻微溢出
下个版本提高命令的速度

1.2更新内容:
1.修复多线程中的一些问题
2.更名Base64解码_YYDS和Base64编码_YYDS
3.新增多线程测试,对比E2EE测试
4.应该是没问题了。

亮点:
1.支持创建键值表_和创建列表_的直接调用方式
2.99%支持E2EE存取键值表的功能,包括无限通用型的参数添加:添加值,置值
3.支持列表排序,键值表排序,速度有保证,基于超级用户的排序框架。
4.基于YYJSON改写,速度理论比E2EE快,同时支持两种路径方式,默认E2EE,可通过YYDS_置路径方式改为只支持YYJSON的版本,后面可能考虑弄个快速键值表和快速列表用于快速解析,还有YYJSON的支持库版内置。
5.采用内存加载dll,不释放任何文件,无限制不联网,动态库只有900kb不到
共同区别:
1:宽文本和消息相关,打包解包对象,关联,cha询(查找支持),高级cha询,不支持
2. 键值表和列表名称区别:存取键值表YZC_和存取列表_
3. 常量区别:多个下划线
4. 部分参数不支持,备注有写,不多且我基本用不到,有需求再加。
5. 修复部分E2EE的bug
键值表区别:
1.到字节集/到xml/从网络载入 不支持,应该是不会添加xml和网络相关的了
2.取类型,取出来的特殊的一个是#存取类型_数值型_,这个类型只包含长整数型和双精度小数型,也就是说,整数型和小数型被包含在内了,用取数值类型来区分
列表区别:
1.新增去重复命令
2.取类型同上
3.过滤主键,比E2EE的高级一点,多个参数:限制列表必须都是键值表型

发表回复

后才能评论