传奇HAOM2翎风最新更新了对CSV表格的读取方式,支持将CSV表格读取为常量形式进行操作,并增加了CSV接口及相关命令。这些更新将使开发者能够更加方便地操作CSV表格,提高开发效率。
新的CSV接口及相关命令包括:
CSVOpenCache:将CSV表格加载到内存中,支持热加载,修改文件后可使用CSVOpenCache重新加载文件命令更新缓存内容。
CSVGetCellInfo:获取CSV文件的最大行数和最大列数。
CSVGetCellText:读取单元格的内容。
CSVFindTextRow:查找内容出在第几行。
这些新命令将使开发者能够更加方便地操作CSV表格,提高开发效率。
以下是一个示范脚本,演示了如何使用这些新命令:
[@测试]
#act
;CSVOpenCache ..\\QuestDiary\\Test.csv
CSVGetCellInfo ..\\QuestDiary\\Test.csv N$总行数 N$总列数
Mov N$行数 0
While N$行数 < N$总行数
CSVGetCellText ..\\QuestDiary\\Test.csv <$STR(N$行数)> 0 S0
CSVGetCellText ..\\QuestDiary\\Test.csv <$STR(N$行数)> 1 S1
CSVGetCellText ..\\QuestDiary\\Test.csv <$STR(N$行数)> 2 S2
Sendmsg 6 [<$STR(N$行数)>,0]<$STR(S0)>;[<$STR(N$行数)>,1]<$STR(S1)>;[<$STR(N$行数)>,2]<$STR(S2)>;
Inc N$行数 1
EndWhile
CSVFindTextRow ..\\QuestDiary\\Test.csv 1.25倍 0~10 2 0 N0
Sendmsg 6 "1.25倍"在<$STR(N0)>行,第2列中
;--------------------------------------------------------
;表格内容作为常量进行获取,仅对CSVOpenCache的可用...
;读取时会已常量形式存放在内存中(如果不经常更改的情况下建议放在QM的[@Startup]启动触发执行)
;修改CSV文件后可使用CSVOpenCache重新加载文件命令更新缓存内容
;通过以下去读相关内存中的表格常量值
[@测试]
#act
CSVOpenCache ..\\QuestDiary\\Test.csv
SendMsg 7 TEST表格内第一行第二列值为:<$TEST(1,2)>
Mov S1 <$TEST(1,2)>
SendMsg 5 1行2列的值为:<$STR(S1)> <$TEST(1,2)>
Copy
在这个示范脚本中,我们首先使用CSVOpenCache命令加载了Test.csv表格到内存中。然后,我们使用CSVGetCellInfo命令获取了表格的最大行数和最大列数,并使用CSVGetCellText命令读取了表格中的单元格内容。最后,我们使用CSVFindTextRow命令查找了表格中的特定内容。
增加了CSV接口及相关命令,更新了支持CSV为常量形式进行操作,扩展了CSVOpenCache加载表格到内存支持热加载 加载csv表格内容到内存中CSVOpenCache 文件路径 修改文件后可使用CSVOpenCache重新加载文件命令更新缓存内容
功能说明: CSV表格读取 CSV相关命令
;-------------------------------------------
;将文件设置为缓存,某一文件执行此命令后,所有的操作都是缓存操作(不使用缓存命令读取的文件可以实时操作)
;如果不经常更改的情况下建议放在QM的[@Startup]启动触发执行缓存命令,可加快脚本运行速度与效率
;修改文件后可使用CSVOpenCache重新加载文件命令更新缓存内容
加载csv表格内容到内存中
CSVOpenCache 文件路径
;-------------------------------------------
获取CSV文件的最大行数和最大列数
CSVGetCellInfo 文件路径 最大行数保存变量 最大列数保存变量
读取单元格的内容
CSVGetCellText 文件路径 行数 列数 保存变量
查找内容出在第几行
CSVFindTextRow 文件路径 字符串 开始行~结束行 列数(从第几列查找) 0/1(0:开始出现的行;1:最后出现的行) 保存变量
--------------------------------------------------------------
下面示范脚本的Test.csv内容
; 备注符号,读取时会忽略此行
; 转生等级,当前属性,下级属性,需求材料
0,当前攻击1.05倍,1.10倍,转生晶石,1
1,当前攻击1.10倍,1.15倍,转生晶石,2
2,当前攻击1.15倍,1.20倍,转生晶石,3
3,当前攻击1.20倍,1.25倍,转生晶石,4
4,当前攻击1.25倍,1.30倍,转生晶石,5
5,当前攻击1.30倍,1.35倍,转生晶石,6
-------------------------------------------------------------
;示范脚本
[@测试]
#act
;CSVOpenCache ..\QuestDiary\Test.csv
CSVGetCellInfo ..\QuestDiary\Test.csv N$总行数 N$总列数
Mov N$行数 0
While N$行数 < N$总行数
CSVGetCellText ..\QuestDiary\Test.csv <$STR(N$行数)> 0 S0
CSVGetCellText ..\QuestDiary\Test.csv <$STR(N$行数)> 1 S1
CSVGetCellText ..\QuestDiary\Test.csv <$STR(N$行数)> 2 S2
Sendmsg 6 [<$STR(N$行数)>,0]<$STR(S0)>;[<$STR(N$行数)>,1]<$STR(S1)>;[<$STR(N$行数)>,2]<$STR(S2)>;
Inc N$行数 1
EndWhile
CSVFindTextRow ..\QuestDiary\Test.csv 1.25倍 0~10 2 0 N0
Sendmsg 6 "1.25倍"在<$STR(N0)>行,第2列中
;--------------------------------------------------------
;表格内容作为常量进行获取,仅对CSVOpenCache的可用...
;读取时会已常量形式存放在内存中(如果不经常更改的情况下建议放在QM的[@Startup]启动触发执行)
;修改CSV文件后可使用CSVOpenCache重新加载文件命令更新缓存内容
;通过以下去读相关内存中的表格常量值
[@测试]
#act
CSVOpenCache ..\QuestDiary\Test.csv
SendMsg 7 TEST表格内第一行第二列值为:<$TEST(1,2)>
Mov S1 <$TEST(1,2)>
SendMsg 5 1行2列的值为:<$STR(S1)> <$TEST(1,2)>
传奇HAOM2翎风更新了CSV表格读取为常量形式进行操作!
来源:
作者:
点击:

