功能说明: 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)> |