传奇主流引擎目前已经都支持CSV文件的支持,做为老GOM插件派新增了写法高速缓存CSV将文本文件缓存到M2内存上面,命令SDCACHERWCSV对高速缓存CSV文件操作,二次或多次调用则会重新刷新常量内容建议固定内容放QM启动时调用一次,特别重要的文件名称不能重复不用路径的文件名称也不能重复!+ G7 w$ y$ r4 ^3 [: T
! T0 W, L& F& U2 l
5 B. {7 f" Y2 J$ n8 D2 r9 q1 C; d8 g; o) b
8 P0 E3 _, n4 z6 ^% X2 t
3 b5 @0 ?1 Q0 S/ N4 }2 z6 A* r8 h9 [/ ^6 W4 ]
CSV自定义常量 命令:SDLOADCONLIST; A5 Q3 b: V' G/ s @* A: k
3 _% p1 Z, a+ `参数位置 参数说明
0 \" q+ V4 u7 o1 R) K _参数1 文件路径
9 D, A. h; s9 H+ ]8 a+ l参数2 所填列数为查找列数 ABCD….. 留空默认“A”
/ t6 ^4 ~5 i: |, E参数3 所填行数为查找列数 1234….. 留空默认“1”
) t( L9 _' p) b; |' v0 ?" e, R" T
* c5 t& \/ A' K* g3 K5 G+ S& ]7 }注意1:SDLOADCONLIST二次或多次调用则会重新刷新常量内容,建议固定内容放QM启动时调用一次!
* V% p. E, O( w* e注意2:特别重要的,文件名称不能重复!!!不用路径的文件名称也不能重复!!!
7 L! g- b& b; I/ M/ m% O h
9 w E" j& X6 q举例说明:# W0 u# _2 i4 |. f3 Z8 ?
J: V1 u: i' Y0 ^2 U4 b' n) Z[@载入常量文件]) X. h% L7 Y( @7 u
#act
9 ?, c p7 e* e. MLOADCONLIST .\测试.csv A 1' W7 Q9 H3 ^3 g1 e4 U2 o1 V7 K" j( ?
sendmsg 7 载入工作表3
1 K7 A0 \5 C$ P' O/ o1 p# |break9 H% Q! {* w: C8 n0 p
;以A列数为查找 行数1为查找4 ?9 R3 b; w: O
[@显示常量文件]
' Y% x. \4 i9 [3 X+ ]# j#act& ~* [8 ]- k" v0 B! y
;获取张三的年龄 此时 变量应为5 D) p( p! ], S; I1 Z, w' I
张三年龄=<$CL_测试(张三.年龄)>% y( A) t( J$ s( m# z
;输出为张三年龄=18
1 q0 \: C( N8 u: S0 Z0 Y/ E& O* @- `* s: Q1 P3 C3 S
;获取李四的体重 此时 变量应为0 @6 U2 d) v, A% W
李四体重=<$CL_测试(李四.体重)>( P% V; I3 Z" B; U5 h8 s; @. n( R# I
;输出为 李四体重=121/ O- F5 n; c7 x8 V+ D$ ?0 T% j
3 L _ m* l z- W5 c
csv脚本说明
) o3 X* t% M# G+ ]; P! S9 z路径说明
7 U6 D' R+ O% O; e7 a- q.\这是当前目录, D8 E- c; P: P6 A0 L0 j5 z6 C
..\这是上级目录& Y$ X" p- F& G# A& S
..\..\这是MIR200目录
3 C* Q" {. |6 T ..\..\..\这是版本目录1 i5 F: P: K# k5 Z& X# W
..\..\..\..\这是盘符根目录
3 |% |7 ~1 h0 A( m0 k- s: X/ c. k注:支持相对路径 ..\..\..\..\ 和 绝对路径 D:\KEY.ini
: i' D/ S: Y7 i/ D" u8 u7 A普通CSV(对版本内CSV文本文件操作)
/ G4 T1 H% x/ j5 D3 U; W& B命令:SDRWCSV 参数1 参数2 参数3 参数4- j4 ^4 W, P4 Y2 Y& y/ r: l/ @
! t+ ^. Q! M- q: q参数位置 参数说明
4 `0 M, N- o& L/ T% r n' U参数1 文件路径
. V' E/ S6 \% r% n参数2 0=读 1=写 2=取CSV参数(行数,列数)7 ^; D: _( g1 C
参数3 参数2为0和1时 此参数为行数 当参数2为2时此参数为行数记录保存的变量
7 u; X' s7 J- W0 \0 H+ W参数4 参数2为0和1时 此参数为列数 当参数2为2时此参数为列数记录保存的变量
: F9 ~8 v0 t* z' J. d; l8 a参数5 参数2为0时 此参数为记录保存的变量 参数2为1时此参数为需要写入的数值 参数2为2时此参数无需填写6 H* @* e5 [. a
6 n2 [4 r& Q7 H# i. B3 E
注意:根据自己的脚本去选择要使用的变量
' d. ]- i$ i% R4 K2 Y4 P- o1 m
) ]8 S9 z# u. d, g读:+ F$ j* A1 X3 j" z) x
SDRWCSV .\测试.CSV 0 1 2 S0* J1 |6 }- j( C$ ^% g( x( O6 @( V
读取CSV 第1行 第2列数据到S0
) b6 u! K% y" I9 E9 ?' N
5 o3 i, V" c. x& O/ K _写:
' B: ?9 j8 E! R7 M) ZSDRWCSV .\测试.CSV 1 1 2 变量
9 x1 V6 @9 W! W- `9 e1 L2 I将”内容”写到CSV第1行 第2列
3 o+ X3 C v# G% |
1 o8 _, a# j) J7 K! V- }取:
) D' g) j! E: ^% R6 @SDRWCSV .\测试.CSV 2 N0 N1% I& S4 `' A# o {1 P
取出CSV行数保存到N0,取出CSV列数保存到N1
' G1 c$ e' }# @! F6 U% W7 P7 U
. R$ V1 ?( g. _/ T, [高速缓存CSV(将文本文件缓存到M2内存上面)9 S' q$ r2 U4 _# Q% z( O
命令:SDCACHELOADCSV 参数1 参数2
; l8 A0 S0 e8 U# D4 _/ H6 P. w9 k: U" D0 [
参数位置 参数说明% D" X+ Y2 n7 X3 i4 O
参数1 文件路径
2 n+ x) R1 ]7 W; O5 m7 i, B- E参数2 0载入,存在则覆盖 1存在则不重复载入, p W+ k6 Q( g2 m ^- N
& t5 f; m8 v, X6 a+ d+ j& r3 [ X4 f注:使用高速缓存CSV必须先调用此命令载入,此命令建议放在引擎启动时用于初始化。
& V1 f3 ^4 I# [6 I( }( Z; C/ z#act$ l, u) }) E* l( g# _
SDCACHELOADCSV D:\MirServer\Mir200\Envir\Market_Def\测试.csv 0
+ `6 C7 i+ j1 w/ O1 ~$ f9 f/ _/ Z% h- ] b! c2 z, H
命令:SDCACHERWCSV 对高速缓存CSV文件操作
, q. [/ H. _: v* B+ K3 v3 s参数位置 参数说明- \; r* \8 {# |
参数1 文件路径' k2 \3 `0 b8 z4 b8 ^% P) h! r
参数2 -1保存 0读 1写 2取CSV# m: {% m& C) P
参数3 列,正找关键行4 A- B+ o1 K7 J4 w- [) Q3 X9 f1 z) p
参数4 列,倒找关键行
- s8 X: ]8 X+ M& B! V! [' Y( g- E D# r4 i2 f
保存:
8 v+ }1 I' M7 X( ?1 ~SDCACHERWCSV .\测试.CSV -1 .\测试2.CSV) I, s$ w# B: R1 ~8 [; P
将高速缓存CSV保存到新的测试2.CSV,若.\测试2.CSV不填写则覆盖原文件% z# C* `# ~& b! X, c* Y; I
6 |* i" g+ m# H6 l- Z& p
读:. @. E' V; Q$ R! t
SDCACHERWCSV .\111.CSV 0 1 2 S04 |; }- b9 U8 z" S8 o* \- L
读取CSV 第1行 第2列数据到S0) G- E0 V1 u4 j+ h* a
" I9 _; j2 ^( ?7 s写:
" X. L9 t$ K7 K/ {% D' c. vSDCACHERWCSV .\111.CSV 1 1 2 内容) \* G9 ^0 Y& G4 M2 b7 W
将"内容"写到CSV第1行 第2列
' q, `9 y# W% a3 k缓存CSV写入不影响原文件,需要改变原文件请使用保存参数
7 Q! F$ N- [( y% {6 i% f7 [( Y3 J4 G" R1 g
取:
- E: x4 W; N( F7 FSDCACHERWCSV .\111.CSV 2 N0 N1
% { w6 ?# }% X; W! G取出CSV行数保存到N0,取出CSV列数保存到N1
+ u, }; J0 a, L# r' o6 P
! i5 Q2 F5 H. d4 w# H+ z+ N. L列找关键字所在行,从首部开始找:6 _( _3 s' Y" W* T/ Q1 C
SDCACHERWCSV .\111.CSV 3 2 内容
7 B& T6 O- i! R/ W) B首部开始找出第2列关键字“内容”所在行
% T' h- r; h3 B5 L2 U6 X5 w, {" A- O& F* v- }2 j$ d
列找关键字所在行,从尾部开始找:
! G! D: ?0 B3 O3 P: G# q* @SDCACHERWCSV .\111.CSV 4 2 内容
* F. M7 p" Z0 l/ l( d从尾部开始找出第2列关键字“内容”所在行
8 N* F! X; ~: ]7 y/ t5 q
' X% ~- r: Z/ ]: S* }, N2 u1 f常量命令:(仅支持高速缓存CSV)
* [2 s! c; G; s2 S( E6 `' t<$CSV_111(0,1,2)>
/ n; y6 G; b" ^: L) E结构:$CSV_ 111为CSV文件名不需要后缀 (0,1,2) 0=读 1=行 2=列
' _# T# Y8 n" n& L6 f" o3 }9 f% n解释:读缓存111.CSV第1行第2列内容
# n, c, N' q7 }1 M$ k! n6 }' m5 P- {
<$CSV_111(1)># R& ^7 T- t) H* L* n
结构:$CSV_ 111为CSV文件名不需要后缀 (1) 取行数
/ |; g5 L; Y$ G* N$ [3 C解释:取缓存111.CSV总共有多少行$ J2 I( W+ o# o4 S1 s, E6 w+ y
" m" K- ]! L4 I: B
<$CSV_111(2)>% Z e3 H2 j( h" g& @
结构:$CSV_ 111为CSV文件名不需要后缀 (2) 取列数( ^( I( o5 p( U3 m# `
解释:取缓存111.CSV总共有多少列
, \% }8 P( S% {5 S( @
9 Z- x2 f5 [1 k1 x1 R: i$ r! z+ @<$CSV_111(3,2,内容)>
3 O' r3 [+ U( Y; u9 A, ]- c9 T结构:$CSV_ 111为CSV文件名不需要后缀 (3,2,内容) 列找关键字所在行,从首部开始找- g( \3 r7 _4 N/ F3 s
解释:缓存111.CSV从首部开始找出第2列关键字“内容”所在行9 g- m( y* D6 |( e9 b, M
6 F6 x# W2 f* Q' I$ ?+ v; Y! e4 _6 |
<$CSV_111(4,2,内容)>7 X: [2 @. c1 K9 i9 J1 S+ {
结构:$CSV_ 111为CSV文件名不需要后缀 (4,2,内容) 列找关键字所在行,从首部开始找& t: ^& B: I, |3 C; f
解释:缓存111.CSV从尾部开始找出第2列关键字“内容”所在行
- T3 y* y. w* v# k/ v |