文本与文件
随机读取字符串
从文本文件或权重字符串中随机读取一项到变量,适用于随机词条、随机名单和概率抽取场景。
命令用途
ReadRandomStr 用于从文本文件或权重字符串中随机读取一项内容,并把结果写入指定变量。
它既可以像 ReadRandomLine 一样从文本文件中随机取一行,也可以直接使用“字符串1|权重1,字符串2|权重2...”这种写法做概率抽取。
命令名
ReadRandomStr
调用格式
ReadRandomStr <文件路径/权重字符串> <返回变量> [HardDisk]
参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
文件路径/权重字符串 | 是 | 可以写文本文件路径,也可以直接写权重字符串,常见格式是 字符串1|权重1,字符串2|权重2,字符串3|权重3...,权重数字越大获取几率越小 |
返回变量 | 是 | 用于接收随机结果的变量,一般写 S 系列字符串变量,也可以写入其它可接收文本结果的变量。 |
HardDisk | 否 | 文件模式下可用来实时读取硬盘内容;省略时优先读取引擎当前内存中的文本内容。 |
返回或影响
- 该命令会把随机选中的内容写入指定变量。
- 它不是条件判断命令,通常配合
#ACT、SendMsg、MOV等流程继续使用。 - 如果使用文件模式,带
HardDisk时会优先读取物理文件中的实时内容。 - 如果使用权重字符串模式,则直接按传入的字符串列表进行随机抽取。
- 如果读取到的内容为空,返回变量可能保留该变量上一次的值,不能默认当作空字符串处理。
示例
基础用法
#ACT
ReadRandomStr ..\QuestDiary\随机词条.txt S15 HardDisk
SendMsg 0 "本次抽到的词条:<$STR(S15)>"
这段写法会从指定文本文件里随机取一项到 S15,适合随机词条、随机名称或随机奖励文案。
常见变体
#ACT
ReadRandomStr 仙|5,魔|3,神|1 S20
这段写法会直接按权重字符串随机抽取一项到 S20,适合不想单独维护文本文件的轻量概率抽取。
注意事项
ReadRandomStr的作用和ReadRandomLine相近,但它还支持直接传入权重字符串。- 如果要判断“是否真的抽到了内容”,建议先把返回变量清空,再执行读取;例如先
MOV S10,再读入S10。 - 如果文本池里存在空行、注释行或格式不统一的内容,抽到后可能直接影响后续脚本拼接结果,最好先清理文本池。
相关资源
- 蓝海软件工具集 — 批量编码转换,老脚本乱码一次治好
