跳到主要内容

文本操作命令

增加脚本命令

INSERTVARLIST A B C D

参数
含义
A指定行数,如果为1则表示在第一行的后面插入一行;
B数据内容
C文件路径
D=1,表示可以写入重复数据
命令解释

将数据插入指定文本的指定行

例子


增加检测命令

Pos A B C

参数
含义
A字符支持变量
B字符支持变量
C变量(可忽略)
补充说明
;检测A字符中是否包含B内容;
不带参数C时,检测A字符中是否包含B内容;
带参数C时,从第几个字符开始检测
例子
#IF
POS ABCDEFG D
#SAY
存在!

增加检测命令

PosInlist A B C D E

参数
含义
A字符支持变量
B文件路径
C变量(可忽略)
D返回行数(可忽略)
E(0、1) 0为原始方式(可忽略); 1为相反检测;
作用
;检测某文本中是否包含另外一段字符
;检测B文本中是否包含A内容,如果存在则返回内容至C变量
D参数返回内容所在文本行数(数值型变量)
例子
#IF
PosInList 星河 ..\QuestDiary\名单.txt S10 M10
#ACT
SENDMSG 5 我的行数是<$STR(M10)>

获取某段文本中以某文本为分割的第一段文本和剩余内容

GETVALIDSTR A B C D

参数
含义
A文本
B字符
C变量
D变量
例子
;//将A文本中,以B字符(只支持一个英文半角字符)为分割,获取第一段内容存入C变量,剩下内容存入D变量
#ACT
GETVALIDSTR 哈哈|呵呵|幻化|探讨 | S1 S2
GETVALIDSTR $STR(S2) | S1 S2
GETVALIDSTR $STR(S2) | S1 S2

检测A字符是否与B字符相同

CompareText A B C

参数
含义
A字符
B字符
C0/1
补充说明

C=1 表示区分大小写,默认不区分大小写,可忽略;

例子
#IF
CompareText abcdefg ABCDEFG
#SAY
相同!!

#IF
CompareText abcdefg ABCDEFG 1
#ELSESAY
不相同!!

FillText A B

作用

将字符变量A以空格填满至B长度

补充说明
A 必须为文本类变量 S、 A
B 填满长度
将A变量填满至B长度,原变量中的内容不变
例子
[@Test]
#ACT
MOV S1 22
FillText S1 14
inc S1 |
则 S1 为 22 |

Trim A

作用

将字符变量A中的空格去除,A必须为字符类变量;

例子
#ACT
MOV S1 哈哈
INC S1
INC S1
INC S1
INC S1
INC S1 呵呵
Trim S1
#SAY
<$STR(S1)>
显示为 哈哈呵呵

FormatStr A B C

命令说明
#32代表空格
A: 变量名称,将格式化后的字符写入相应的文本变量
B: 文本格式,应该由字符和格式化文本组成 类似:我的名字是%s
C: 变量内容,B参数中有几个格式化参数,这里就应该有几个变量内容,使用|隔开.
注意:格式化参数最多支持10个%s
例子
#ACT
FormatStr S1 你的名字是%s,你的元宝还剩余%s个 <$USERNAME>|<$GAMEGOLD>
SENDMSG 7 <$STR(S1)>

分割文本字符串变量命令

SPLIT A B C

参数
含义
A需要分割使用的文本(支持变量)
B以此为分割条件的文本(支持变量)
C用于范围分割文本数组的起始变量(仅支持文本型)
例如:
#ACT 
MOV S0 星河引擎|最稳定的|传世引擎
SPLIT $STR(S0) | S60
//以上脚本执行后,S60~S62,将依次保存分割后的文本。

CopyText用于截取某一段文本中指定长度的字符串

参数说明:
A //待处理字符串
B //待拷贝字符初始位置
C //拷贝字符位数
D //保存的字符串
例如:
#ACT
MOV P0 $TIGER.FELEMENT
MULT P0 2
INC P0 1
CopyText 金木土水火 P0 2 S0
SENDMSG 7 虎王属性为:$STR(S0);

用于检测目标文件是否存在

CheckTxt A

例子
#IF
CHECKTXT .\QuestDiary\游戏数据\白金帐号.txt
#ACT
SENDMSG 6 该文件存在!!!

用于复制一个文件到指定目录

FileCopy A B

参数说明:
A //被复制的文件名
B //复制到的文件名,如果目标文件存在,则直接覆盖
例子
#ACT
FileCopy ..\QuestDiary\游戏数据\白金帐号.txt ..\QuestDiary\白金帐号.txt
Break
注:如果拷贝的文件夹在QuestDiary文件夹下则是2个".",其他目录下是1个"."

获取指定文件的行数,A=文件路径

$TXTLINE(A)

参数说明
SENDMSG 5 指定文本当前有“$TXTLINE(..\QuestDiary\玩家排名.txt);行;  
获取指定文本拥有多少行数,文本不存在则返回-1,支持嵌套写法 ;
例子
#IF
random 1
#ACT
MOV S1 ..\QuestDiary\玩家排名.txt
SENDMSG 5 指定文本当前有“{$TXTLINE(<$STR(S1)>)};”行
break

将变量S中的 A 替换成 B

ReplaceText S A B C

将变量S中的 A 替换成 B ,S必须是文本型变量,C=1则表示只替换第一个字符