传奇主流引擎目前已经都支持CSV文件的支持,做为老GOM插件派新增了写法高速缓存CSV将文本文件缓存到M2内存上面,命令SDCACHERWCSV对高速缓存CSV文件操作,二次或多次调用则会重新刷新常量内容建议固定内容放QM启动时调用一次,特别重要的文件名称不能重复不用路径的文件名称也不能重复!0 v- W& B% e! t$ d7 D7 V6 R% H% ]
- ^% S+ u' ~1 @0 f z
, g, i6 q/ u3 |
; O6 N; w) F0 z, a
$ H) t# U& \! ~2 {; k, c6 V, l8 n
V7 y5 a ^! k7 L4 H7 I' S2 i2 r
( e! \) v. ~6 |( \* p/ WCSV自定义常量 命令:SDLOADCONLIST
. M4 y1 k0 L+ n8 |* O* t5 o
- d1 W, b8 ~2 X) q4 l [) y9 w参数位置 参数说明. C$ e, o& z* C, V. k8 u# `
参数1 文件路径: h. E, B1 U7 o! l/ c
参数2 所填列数为查找列数 ABCD….. 留空默认“A”
9 ~ y9 s4 O2 p参数3 所填行数为查找列数 1234….. 留空默认“1”
' C& L& I% V4 I: `1 U( |. u6 U I2 l+ v0 Y' h$ v0 g
注意1:SDLOADCONLIST二次或多次调用则会重新刷新常量内容,建议固定内容放QM启动时调用一次!
. M6 x" r, c% E& e注意2:特别重要的,文件名称不能重复!!!不用路径的文件名称也不能重复!!!
3 K) }4 u! `5 { t2 \( b4 s& K0 x% E, E$ w: G
举例说明:
A9 |! |& |6 L0 t
* @; b" h6 x M0 ^0 y[@载入常量文件]+ n$ }* \5 ], p2 _$ K3 |- j- g/ D
#act
' }' \# l# A7 S. ?/ l) qLOADCONLIST .\测试.csv A 1; k, }' M) j3 E8 M$ D% E, C
sendmsg 7 载入工作表3
$ j6 Q5 }( V5 X! H6 ]break3 l. l; S, ^# e
;以A列数为查找 行数1为查找
& K* Q$ H1 C4 `. g, ~; {2 }9 Q& ][@显示常量文件]
' L- o n+ f4 e* z5 _4 Q+ C#act/ c* I2 u9 V1 |' x& X) ~1 H8 G( j$ m
;获取张三的年龄 此时 变量应为3 p: j* i: h2 ?- t
张三年龄=<$CL_测试(张三.年龄)>
5 ?. x$ `9 |. y4 T' P;输出为张三年龄=18! q$ z6 e! H; [3 p
# P }) W# C$ p1 v2 v0 a9 c
;获取李四的体重 此时 变量应为" ~4 P% r/ Q, y4 u* G
李四体重=<$CL_测试(李四.体重)>
! j- n8 j' N1 m# Q" T;输出为 李四体重=121; I5 v. u' q& @0 l+ B
0 ^0 H$ h' N$ E5 R# d1 x; U
csv脚本说明; ^4 h; Y5 N6 Z1 G d. N: \
路径说明- ~3 {; r" `. a2 ]/ t* o2 m0 Y+ B0 I
.\这是当前目录9 f2 b5 T1 P: s0 U! p
..\这是上级目录; ~& d# p C, H' e
..\..\这是MIR200目录
/ ^ d+ d5 A. Q: P, E' F ..\..\..\这是版本目录
8 v' @: p# j5 ^7 w( K ..\..\..\..\这是盘符根目录5 D- _; J6 u/ o' C8 G/ h+ t
注:支持相对路径 ..\..\..\..\ 和 绝对路径 D:\KEY.ini
) r: l6 p' \ j- \) W* M普通CSV(对版本内CSV文本文件操作)
. n* m, K4 C. d2 \ x# W. U% k! g命令:SDRWCSV 参数1 参数2 参数3 参数4
. m( H! Q( z, a3 U S/ W$ R- Y' X9 T) f: L d5 k6 J! ^
参数位置 参数说明
5 o" E' W$ Z; e% P- h7 K参数1 文件路径
: B$ G# Y) _3 P( w参数2 0=读 1=写 2=取CSV参数(行数,列数)7 z ?2 @8 P1 F, B9 q
参数3 参数2为0和1时 此参数为行数 当参数2为2时此参数为行数记录保存的变量; Z6 _, l; r. V3 z9 f# u
参数4 参数2为0和1时 此参数为列数 当参数2为2时此参数为列数记录保存的变量
[. q% x6 d1 V) t8 m; }' s参数5 参数2为0时 此参数为记录保存的变量 参数2为1时此参数为需要写入的数值 参数2为2时此参数无需填写
9 P" @# z3 b/ _. y' q
! Y5 ~! x: @( t; D$ }! C: N5 e" ^注意:根据自己的脚本去选择要使用的变量" j* T; [1 Y. w
9 h: F3 W+ L* [( ?+ J4 ]1 z+ N: A
读:
4 R0 x5 s& E: `1 T+ {+ JSDRWCSV .\测试.CSV 0 1 2 S02 X% Y: m1 E. X E2 }' v+ ~
读取CSV 第1行 第2列数据到S0+ o o7 A) ]6 F/ c; j7 y- n7 w
2 ]: X. R: ~0 _- e
写:& d3 O, U. p; h) M+ ]8 f& i
SDRWCSV .\测试.CSV 1 1 2 变量
# a! v& E! z: J1 t5 Y( s" K将”内容”写到CSV第1行 第2列2 _2 G7 X2 f! |$ u- I1 ~
. {7 q+ Y0 n \# z: z
取:
! q+ J8 j1 { Y( LSDRWCSV .\测试.CSV 2 N0 N19 w/ d& d) Z' w
取出CSV行数保存到N0,取出CSV列数保存到N1
' J5 o( d4 V1 C. `1 G# j$ W5 M; e; S) j1 ~5 J Z% `6 h$ Z
高速缓存CSV(将文本文件缓存到M2内存上面)
/ ?4 Q" r7 X: V; i7 ]: ^8 e命令:SDCACHELOADCSV 参数1 参数27 l0 p- v$ H6 a# U
" u- b; Y! j5 a6 s6 q! f/ F参数位置 参数说明& {5 Y* }0 n' k7 q7 C
参数1 文件路径
\2 U( n; c/ g7 P+ P" M9 M/ M参数2 0载入,存在则覆盖 1存在则不重复载入
! P ~! b+ x* J+ u$ F# J9 Y* f. D" G8 |+ M+ G3 z1 l
注:使用高速缓存CSV必须先调用此命令载入,此命令建议放在引擎启动时用于初始化。5 t( Q3 K) H# [8 x
#act
! \* k0 `( ?# r& ^3 tSDCACHELOADCSV D:\MirServer\Mir200\Envir\Market_Def\测试.csv 0
8 G" x9 U# J: \: f: Y' Q
$ N( l x9 R& p+ @命令:SDCACHERWCSV 对高速缓存CSV文件操作+ ]& q8 Y/ s& Y6 ? }
参数位置 参数说明% K% D9 X9 t" `
参数1 文件路径' t0 l: G/ `* A1 {' G
参数2 -1保存 0读 1写 2取CSV
" ^7 J! I3 x# G' ?' w% l7 E0 t参数3 列,正找关键行! H, ?0 K3 _. G/ ?/ F7 e% r
参数4 列,倒找关键行
( i0 `) K# J$ L& l$ ^3 f
b/ ~: b! M7 f7 B保存:( _, e' M" q9 t: G
SDCACHERWCSV .\测试.CSV -1 .\测试2.CSV
g6 h( k4 s; c) N将高速缓存CSV保存到新的测试2.CSV,若.\测试2.CSV不填写则覆盖原文件3 f( j4 [7 {: c: H4 }5 W: K* x% G
4 e! X) J" I' P0 T' q& h% c) g" ~
读:
" \/ Z! V! Q2 G$ o% _SDCACHERWCSV .\111.CSV 0 1 2 S0
- v5 t. g3 a' \0 P/ ?读取CSV 第1行 第2列数据到S0
* K& e0 [6 e: k! e; l
3 {9 e0 g4 u3 {: ?( c0 f, r写:( w# k& E' ?: d" k* j; ~- ^) `
SDCACHERWCSV .\111.CSV 1 1 2 内容4 r6 a O% F/ z$ h" ?0 B0 e
将"内容"写到CSV第1行 第2列! m7 x& n1 e2 v# i1 }
缓存CSV写入不影响原文件,需要改变原文件请使用保存参数
. w0 J7 _+ t7 M$ Z( p( X2 ]. F& _- f1 Q4 p4 f0 O! ^* |
取:
( u. ]2 `" [2 E' qSDCACHERWCSV .\111.CSV 2 N0 N1. i7 X1 i. P. n9 C5 \
取出CSV行数保存到N0,取出CSV列数保存到N1
$ S; @: t+ a: \; B/ t M+ w' J) d0 r5 |& c
列找关键字所在行,从首部开始找:
1 J& q; Y- F# O. M# l$ V3 jSDCACHERWCSV .\111.CSV 3 2 内容
2 f9 T) l, {9 w( ^首部开始找出第2列关键字“内容”所在行; |: Z- b* Q0 I, i1 y$ W9 h; K
% x$ r: R4 v: x. X, L' [( N6 F
列找关键字所在行,从尾部开始找:( P- L$ v4 }2 e. Y& u0 J
SDCACHERWCSV .\111.CSV 4 2 内容) \3 u, N/ \' p m
从尾部开始找出第2列关键字“内容”所在行0 b9 X: @; }) a3 I$ o1 n
7 u5 T& w& Q; m' v
常量命令:(仅支持高速缓存CSV)
3 X+ S8 b9 y m) T1 c<$CSV_111(0,1,2)>
6 y% e% B6 {+ O+ q1 ]8 M结构:$CSV_ 111为CSV文件名不需要后缀 (0,1,2) 0=读 1=行 2=列: ~- h1 J7 Q& @+ D
解释:读缓存111.CSV第1行第2列内容
! W5 d: |1 f: l& v/ P1 r( }" w
<$CSV_111(1)>
: s" j4 X( P2 x, i: y结构:$CSV_ 111为CSV文件名不需要后缀 (1) 取行数% p$ y0 g: t' E" ~! ~! B
解释:取缓存111.CSV总共有多少行$ `, C l% ^ w$ V( E# }8 j. ^2 r
$ X- o1 W$ j* ~<$CSV_111(2)>
6 V, `" O- L' {; k0 ~# Z. t结构:$CSV_ 111为CSV文件名不需要后缀 (2) 取列数
7 N; n* @1 l" s; i解释:取缓存111.CSV总共有多少列- S% G' P; d3 K z/ B( J
! C$ ?- x; H, K; ^" n<$CSV_111(3,2,内容)>4 h8 r( I; l) R- M
结构:$CSV_ 111为CSV文件名不需要后缀 (3,2,内容) 列找关键字所在行,从首部开始找
7 l7 j. C# C4 l0 [* M解释:缓存111.CSV从首部开始找出第2列关键字“内容”所在行
: q) |# V4 [1 j d. o. n( C. n0 L$ r0 f, k D
<$CSV_111(4,2,内容)>/ W5 L0 t( }" U1 C9 E T
结构:$CSV_ 111为CSV文件名不需要后缀 (4,2,内容) 列找关键字所在行,从首部开始找
( p6 H7 d0 X6 m( x$ o/ `, H解释:缓存111.CSV从尾部开始找出第2列关键字“内容”所在行: y. V2 Y; O. ?) N
|