传奇主流引擎目前已经都支持CSV文件的支持,做为老GOM插件派新增了写法高速缓存CSV将文本文件缓存到M2内存上面,命令SDCACHERWCSV对高速缓存CSV文件操作,二次或多次调用则会重新刷新常量内容建议固定内容放QM启动时调用一次,特别重要的文件名称不能重复不用路径的文件名称也不能重复!' X1 H5 _- C5 C0 p9 D* R4 O
+ m' x& n }+ L" ^+ B ?3 h0 S3 D7 e, Z
- d: b/ b- B9 R% h
/ z" ]; l- m+ N3 y: T
) I( {1 e. ^" R1 O: a
( R% v. }/ @$ U& ~- W% d/ k" [CSV自定义常量 命令:SDLOADCONLIST% u: L; J3 c+ t4 U6 `1 v( n, B: c9 U
a& H+ ?% T* \9 q; H参数位置 参数说明2 G1 u3 f/ J, J- r; Y- j
参数1 文件路径9 |" c) D% M. D" u+ s# z* a
参数2 所填列数为查找列数 ABCD….. 留空默认“A”5 Y" f+ ~7 ]& B' T" J: R2 u- h
参数3 所填行数为查找列数 1234….. 留空默认“1”: `2 ~; N6 f& z0 ]" c/ t/ s4 W# H
, G+ s2 P$ O3 G6 z4 L ?注意1:SDLOADCONLIST二次或多次调用则会重新刷新常量内容,建议固定内容放QM启动时调用一次!; h y2 U" o! U$ f0 g8 h9 b
注意2:特别重要的,文件名称不能重复!!!不用路径的文件名称也不能重复!!!9 b" r4 G3 v# u* k9 r
. f9 b6 s; u1 p( j. X$ M$ E& ~举例说明:
* E: B. T/ _1 y U- g" V* p
& }6 @. a2 G; R! {3 s) d) g[@载入常量文件]
9 t" g! j7 D; ^# p5 c- S0 t; G#act
8 Y% L o2 z) L PLOADCONLIST .\测试.csv A 1
9 I1 |& ~) L! S) ]4 j& _. ssendmsg 7 载入工作表35 N& r6 w) k. f" z6 x+ x
break/ N! p& ~) E" E. l* g* L
;以A列数为查找 行数1为查找. f, d% ^$ v( X, ?: ~
[@显示常量文件]. U6 I9 F5 M% m8 Q) H
#act6 b3 j* b! u$ A* r. U; i
;获取张三的年龄 此时 变量应为
- O" S; t3 I: i/ r! [: K张三年龄=<$CL_测试(张三.年龄)>+ N# P* S/ w# `4 Z5 _7 L" I
;输出为张三年龄=18. g* d4 K7 v. E
/ q0 N7 y) F9 G: P1 g5 a9 D p
;获取李四的体重 此时 变量应为
4 h) W& R5 ~" @4 {6 S5 d李四体重=<$CL_测试(李四.体重)>
: w! O E, C8 h$ ^2 s9 u9 k6 u1 h;输出为 李四体重=1214 f% k7 T. O2 @ o) w' E+ O
- b! t0 _7 d% f- w7 z7 lcsv脚本说明3 v2 g0 v" z6 u7 p, J! n
路径说明
4 ^; O& C& a/ P0 A& h+ C2 [.\这是当前目录
! e! ~# B: I5 E, `# l" v! R% V..\这是上级目录; U2 z0 ?5 P6 H# M
..\..\这是MIR200目录
3 D" _: Q! T% P' {. m( A6 _: ~' D5 { ..\..\..\这是版本目录2 ^# b* P* z. r
..\..\..\..\这是盘符根目录
) V; @. E4 u4 N: b: M/ K注:支持相对路径 ..\..\..\..\ 和 绝对路径 D:\KEY.ini/ x/ {0 N: u* j* E$ u
普通CSV(对版本内CSV文本文件操作)2 D3 M6 f( f/ D% u$ e
命令:SDRWCSV 参数1 参数2 参数3 参数40 x$ T# ^& R- r8 a8 G5 S4 V
/ {' u; s8 N: A$ D0 E$ t
参数位置 参数说明8 R* N A/ y, [4 H
参数1 文件路径+ p- A/ d2 v, a! j+ P+ Z9 T. K
参数2 0=读 1=写 2=取CSV参数(行数,列数)
! X: J V$ T0 z; D* m5 N参数3 参数2为0和1时 此参数为行数 当参数2为2时此参数为行数记录保存的变量3 T/ n& q1 W4 O$ }& `( p! d8 W. \- D
参数4 参数2为0和1时 此参数为列数 当参数2为2时此参数为列数记录保存的变量
9 g- p" e8 k U5 L1 b3 s9 K; A参数5 参数2为0时 此参数为记录保存的变量 参数2为1时此参数为需要写入的数值 参数2为2时此参数无需填写
& r# Z8 `$ A1 Q7 r7 w. N
0 H3 E: v) a; {注意:根据自己的脚本去选择要使用的变量, {8 x6 U- |& `1 K$ }; G7 M
O1 j0 }2 j) `+ p3 a2 T读:
3 s) B6 `) n. R' L7 S& X* x4 XSDRWCSV .\测试.CSV 0 1 2 S0* @) L) V% W+ J
读取CSV 第1行 第2列数据到S0+ l+ X/ A+ {! J% c+ x
( r: J$ Z6 H# I* G) h& o写:9 i! s$ X' O8 [! E, X4 H
SDRWCSV .\测试.CSV 1 1 2 变量
5 o4 U/ Q4 P, e& r2 t' A将”内容”写到CSV第1行 第2列
4 V! O& o" a7 ^" I7 l8 g" [7 h
( j8 q0 f+ h% s' k取:# v# i& j9 }9 v* D0 Q+ S" C
SDRWCSV .\测试.CSV 2 N0 N1
/ x$ ?" ?& j8 N取出CSV行数保存到N0,取出CSV列数保存到N1
# ^/ T4 j4 t- r' O- i! L; F1 K0 d0 E) R- C9 V
高速缓存CSV(将文本文件缓存到M2内存上面)
! r5 R( ^( j c0 g命令:SDCACHELOADCSV 参数1 参数2+ f5 r& X9 Z8 W* X% }
* J' J. J7 Y. k$ ~" F, d. w: J5 z. s参数位置 参数说明
5 ~0 F5 B0 C( a8 B- x9 S参数1 文件路径$ a$ w. H0 D- l- _+ _
参数2 0载入,存在则覆盖 1存在则不重复载入! j2 |: f! k H' a
4 q6 d) E, {. t& k
注:使用高速缓存CSV必须先调用此命令载入,此命令建议放在引擎启动时用于初始化。
1 P2 r9 t; a" I8 x#act
8 Y2 J" {6 ?, `) I! CSDCACHELOADCSV D:\MirServer\Mir200\Envir\Market_Def\测试.csv 0
* [1 m% }( ~8 N& E$ l
: ?3 J- d9 C, D& f0 W1 n命令:SDCACHERWCSV 对高速缓存CSV文件操作) \+ N+ k: [2 [" S
参数位置 参数说明2 |7 e/ `0 b" d& {! q. u
参数1 文件路径
3 S: E4 a! T& ]: ?3 _: y参数2 -1保存 0读 1写 2取CSV
: E# l X i h' U/ _" u参数3 列,正找关键行
: F7 ~7 ^% H( f" s! l参数4 列,倒找关键行$ L; T/ d/ ?0 z5 j
9 j" g" Y- r. o' Q* c5 V
保存:
& b2 [5 }8 s% S4 JSDCACHERWCSV .\测试.CSV -1 .\测试2.CSV
5 Q3 G/ C1 i& c5 w) n/ o将高速缓存CSV保存到新的测试2.CSV,若.\测试2.CSV不填写则覆盖原文件
5 E7 Y% U4 s) q1 ~# q8 r# |1 D
( ^% f+ F" @# s1 W* \( k* c6 J' k读:
$ E: n a, s) [ m+ V* f1 mSDCACHERWCSV .\111.CSV 0 1 2 S0! [: [9 \+ Y- `2 f/ S. Q1 ?
读取CSV 第1行 第2列数据到S0, ~1 V8 c. R2 T4 o8 Y4 W8 w* q
+ H) A z/ u. [6 ], F( M+ S
写:
& a! J1 ~4 l0 B5 g1 iSDCACHERWCSV .\111.CSV 1 1 2 内容9 y0 K# u$ A! B' ]5 A
将"内容"写到CSV第1行 第2列
& ?, q% i6 s( o缓存CSV写入不影响原文件,需要改变原文件请使用保存参数3 Z3 p8 G, q/ h" S) l% p5 T
( l; d8 x* O# E; V. ^
取:
9 S2 {7 c# t8 T pSDCACHERWCSV .\111.CSV 2 N0 N1. t' [) r/ J/ f8 l2 S
取出CSV行数保存到N0,取出CSV列数保存到N1
& b C$ e1 x0 |. W
( X# B. h0 f! f7 h' {' e c! A) T. D列找关键字所在行,从首部开始找:7 p' u! j. g% A+ b' x
SDCACHERWCSV .\111.CSV 3 2 内容( P2 g1 _# o. ?+ k" y4 @; J
首部开始找出第2列关键字“内容”所在行" J- J4 f9 \* e2 l# R
" G, a/ O: j0 f: W" k
列找关键字所在行,从尾部开始找:
3 o, N+ y. @( q7 P0 _SDCACHERWCSV .\111.CSV 4 2 内容
: d9 f7 y4 U4 Y# S$ J7 K从尾部开始找出第2列关键字“内容”所在行
9 {! {- t' `: U" f6 v) S$ u S* q% J, N3 e
常量命令:(仅支持高速缓存CSV)
. x9 I& J, V! Y- n! O/ M, E<$CSV_111(0,1,2)>4 w+ I6 b( K7 N, P; m$ \1 M
结构:$CSV_ 111为CSV文件名不需要后缀 (0,1,2) 0=读 1=行 2=列
- B' M8 ~9 U' K解释:读缓存111.CSV第1行第2列内容
1 w7 P9 t9 C5 q- u! Z' K0 G7 ~- I2 N8 V9 r
<$CSV_111(1)>
* m; q$ W; E- F6 D结构:$CSV_ 111为CSV文件名不需要后缀 (1) 取行数6 D% e! v9 R, p7 [' H0 i2 j3 L
解释:取缓存111.CSV总共有多少行/ b8 d' z9 \2 W! [3 {
7 ^2 k% p! A+ ] V* m
<$CSV_111(2)>. c3 f6 X' I7 n3 @- @: r: t2 H
结构:$CSV_ 111为CSV文件名不需要后缀 (2) 取列数( _5 H3 b0 {$ R+ q" I
解释:取缓存111.CSV总共有多少列
( \* J; S+ N5 ]% `0 I6 O* R7 n
) S7 M6 ]4 w4 ?$ V<$CSV_111(3,2,内容)>
; j t: n7 q) e: y6 ^: v7 z结构:$CSV_ 111为CSV文件名不需要后缀 (3,2,内容) 列找关键字所在行,从首部开始找
7 V; f( x7 x6 Q+ M. t1 U8 D1 y" X% N解释:缓存111.CSV从首部开始找出第2列关键字“内容”所在行
# q* X) X7 |" I/ G$ c r. i$ c4 H
1 q4 |6 n' ~- ^. h8 W. l<$CSV_111(4,2,内容)>9 B% P6 y# |1 _& o$ J- |+ J
结构:$CSV_ 111为CSV文件名不需要后缀 (4,2,内容) 列找关键字所在行,从首部开始找
$ b& H0 G5 c6 c7 L9 e8 R- m解释:缓存111.CSV从尾部开始找出第2列关键字“内容”所在行
5 _0 Q) D0 ]( ^ e, z% [2 H6 e* |9 } |