MIRC 脚本/进阶/哈希表
哈希表
哈希表允许您有效地存储大量信息,这些信息可以快速引用并在以后检索。
可以使用以下命令和标识符创建、释放、引用或修改哈希表。
/hmake -s <name> <N> 创建一个具有 N 个槽的新哈希表。
哈希表可以存储无限数量的项,无论您选择的 N 是多少,但是 N 越大,它的工作速度越快,这取决于存储的项的数量。
例如,如果您预计将在表中存储 1000 个项,则将 N 设置为 100 的表就足够了。
-s 开关使命令显示结果。
/hfree -sw <name>
释放现有的哈希表。
-w 开关表示 name 是通配符,所有匹配的表都将被释放。
/hadd -smbczuN <name> <item> [data | &binvar] 将项添加到现有哈希表中。
如果您要添加的项已存在,则将替换旧项。
-m 开关使 /hadd 在哈希表不存在时创建它。
-uN 开关在 N 秒后取消设置项。
-b 表示您正在将 &binvar 项添加到哈希表中。
-c 开关将 &binvar 切割到第一个空值并将其视为纯文本。
-z 开关每秒减少一次哈希项,直到它达到零然后取消设置它。
/hinc 和 /hdec 命令使用与 /hadd 相同的参数,并增加或减少项的数值。
与 /hinc 或 /hdec 一起使用时,-c 开关每秒增加或减少一次值。
/hdel -sw <name> <item> 从哈希表中删除项。
-w 开关表示 item 是通配符,所有匹配的项都将被释放。
/hload -sbni <name> <filename> [section] /hsave -sbnioau <name> <filename> [section] 将表加载到文件或从文件保存。
这些将纯文本加载到文本文件或从文本文件保存,项和数据位于单独的行上。$cr 和 $lf 字符在保存为纯文本时将被剥离。
-b 开关加载或保存二进制文件。$cr 和 $lf 在保存为二进制文件时将被保留。
您可以使用 -n 加载或保存仅包含数据的文件,不包含项。使用 -n 加载时,数据的每一行都将分配一个 N 项值,从 N = 1 开始。
/hsave 还支持 -o 覆盖现有文件,-a 附加到现有文件。
默认情况下,/hsave 排除 /hadd -uN 取消设置列表中的项,-u 开关强制它包含取消设置的项。
-i 开关将文件视为 ini 文件。您可以在文件名后指定可选的节名称。
注意:/hload 不会创建表,它必须已经由 /hmake 创建。
$hget(name/N) 如果存在,返回哈希表的名称,或返回第 N 个哈希表的名称。
属性:size
$hget(moo).size 返回表的 N 大小,如 /hmake 中指定的那样
$hget(name/N, item)
返回与指定哈希表中项关联的数据。
属性:unset
unset 属性返回项取消设置之前剩余的时间。
$hget(name/N, item, &binvar) 将项的内容分配给 &binvar。
$hget(name/N, N).item 这允许您将表引用为从 0 到 N 的索引,以便查找表中的第 N 个项。
如果 N 为零,则返回表中项的总数。
您还可以直接使用 $hget().data 引用第 N 个数据值。
注意:此方法作为一种便利提供,它不是使用哈希表的有效方法。
$hfind(name/N, text, N, M) 在表中搜索与 text 匹配的第 N 个项名。返回项名。
属性:data
如果您指定 .data 属性,则搜索匹配的数据值。
M 是可选的,可以是
n normal text comparison (default if M isn't specified) w text is wildcard text W hash table item/data is wildcard text r text is regular expression R hash table item/data is regular expression