跳转到内容

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
华夏公益教科书