正在加载文档
哈希链表
<!-- mindoc:slug=aa-1hglonrguh7b8 -->
#### 写入键值:
>HASHTABLEINSERT 参数1 参数2
#### 参数说明:
|位置|说明|备注|
|:----|:---|:---
|参数1 |标识字符串 ||
|参数2 |键值|可为数字或字符串|
#### 示例:
```
[@测试]
#IF
#ACT
HashTableInsert 杀手 一号战队
SENDMSG 5 玩家"杀手"加入一号战队
break
```
#### 检测键值:
>CHECKHASHTABLEEXIST 参数1
#### 参数说明:
|位置|说明|备注|
|:----|:---|:---
|参数1 |标识字符串|不区分大小写|
#### 示例:
```
[@测试]
#IF
CheckHashTableExist 杀手
#ACT
SENDMSG 5 玩家“小杀”已存在记录中
break
```
#### 获取键值:
>HASHTABLEGET 参数1 参数2
#### 参数说明:
|位置|说明|备注|
|:----|:---|:---
|参数1 | 标识字符串|不区分大小写|
|参数2 | 获取保存后的变量|不区分大小写|
#### 示例:
```
[@测试]
#IF
CheckHashTableExist 杀手
#ACT
HashTableGet 杀手 <$STR(S10)>
SENDMSG 5 玩家“小杀”当前键值为[<$STR(S10)>]
break
#ELSEACT
SENDMSG 5 未找到“杀手”任何记录
break
```
#### 删除键值:
>HASHTABLEREMOVE 参数1
#### 参数说明:
|位置|说明|备注|
|:----|:---|:---
|参数1 | 标识字符串|不区分大小写|
#### 示例:
```
[@测试]
#IF
CheckHashTableExist 杀手
#ACT
HashTableRemove 杀手
SENDMSG 5 玩家“小杀”已删除记录
break
```
#### 清除所有键值:
>HASHTABLECLEAR
#### 示例:
```
[@测试]
#IF
#ACT
HashTableClear
SENDMSG 5 已清除所有键值记录
break
```
#### 载入文本内容到键值:
>HASHTABLELOAD 参数1 参数2 参数3
#### 参数说明:
|位置|说明|备注|
|:----|:---|:---
|参数1 | 文本路径|
|参数2 | 键值|可为数字或字符串|
|参数3 | 分割符|参数忽略则视为换行符|
#### 示例:
```
[@测试]
#IF
#ACT
HashTableLoad ..\QuestDiary\战队成员.txt 一号战队
SENDMSG 5 该文本内的所有玩家加入“一号战队”
break
“战队成员.txt”文本内容如下:(文本玩家每行一个名字,则 HashTableLoad 命令最后一个参数可为空)
杀手
小杀
魔尊
雄霸
```
#### (扩展)载入文本内容到键值
>HASHTABLELOADEX 参数1 参数2 参数3
#### 参数说明:
|位置|说明|备注|
|:----|:---|:---
|参数1 |文本路径 |
|参数2 |标识符前缀附加值 |
|参数3 |键值|为数字或字符串|
|参数4 |分割符|参数忽略则视为换行符|
#### 示例:
```
[@测试]
#IF
#ACT
HashTableLoadEx ..\QuestDiary\战队成员.txt 情义天下 一号战队
SENDMSG 5 该文本内【情义天下】队伍所有玩家加入“一号战队”
break
“战队成员.txt”文本内容如下:(文本玩家每行一个名字,则 HashTableLoadEx 命令最后一个参数可为空)
杀手
小杀
魔尊
雄霸
"使用前缀附加值后,查找、检测命令则需要添加前缀符号值。"
[@测试]
#IF
CheckHashTableExist 情义天下杀手
#ACT
SENDMSG 5 “情义天下杀手”已存在记录中
break
[@测试]
#IF
#ACT
HashTableGet 情义天下雄霸 <$STR(S10)>
SENDMSG 5 玩家“情义天下雄霸”当前是:[<$STR(S10)>]
break
```